मैं Git रिपॉजिटरी से फ़ाइल कैसे हटा सकता हूं?


1922

मैंने "file1.txt"एक Git रिपॉजिटरी नाम की एक फाइल जोड़ी है। उसके बाद, मैंने इसे प्रतिबद्ध किया, निर्देशिकाओं के एक जोड़े को बुलाया dir1और dir2, और उन्हें गिट रिपॉजिटरी के लिए प्रतिबद्ध किया।

अब वर्तमान भंडार है "file1.txt", dir1और dir2। मैं "file1.txt"दूसरों को प्रभावित किए बिना कैसे हटा सकता हूं , जैसे dir1और dir2?


85
git rmसही उत्तर है, लेकिन याद रखें कि फ़ाइल अभी भी इतिहास में रहेगी। यदि आप किसी फ़ाइल को निकालना चाहते हैं क्योंकि उसमें संवेदनशील जानकारी थी, तो आपको कुछ अधिक कठोर करने की आवश्यकता होगी। (इतिहास को बदलना, विशेष रूप से उस सामग्री के लिए जिसे आपने पहले ही धकेल दिया है, एक कठोर क्रिया है, और यदि संभव हो तो इसे टाला जाना चाहिए।)
कीथ थॉम्पसन

8
नोट: GitHub पर, अब आप सीधे वेब इंटरफ़ेस से एक फ़ाइल को हटा सकते हैं (रेपो को क्लोन किए बिना भी)। देखें नीचे मेरा उत्तर
वॉनसी

4
@KeithThompson अगर मैं सख्त तौर पर ऐसा करना चाहूं तो क्या कदम उठा सकते हैं?
lessthanl0l


जवाबों:


3215

का उपयोग करें git rm

यदि आप गिट रिपॉजिटरी और फाइलसिस्टम से फाइल को हटाना चाहते हैं , तो उपयोग करें:

git rm file1.txt
git commit -m "remove file1.txt"

लेकिन अगर आप फ़ाइल को केवल गिट रिपॉजिटरी से निकालना चाहते हैं और फाइल सिस्टम से नहीं हटाना चाहते हैं, तो उपयोग करें:

git rm --cached file1.txt
git commit -m "remove file1.txt"

और परिवर्तनों को दूरस्थ रेपो तक पहुंचाने के लिए

git push origin branch_name  

91
इसके अलावा काम करें: git rm -r डायरेक्टरी // डायरेक्टरी और कंटेंट को हटाने के लिए
Reg

10
हालांकि उस फाइल को अन्य कमिट्स से छुटकारा नहीं मिलने वाला है।
वोटो

6
@SaulOrtega: यह सही है। पिछले कमिट्स (पिछले इतिहास को बदलते हुए) से किसी फ़ाइल को निकालने के लिए, संवेदनशील डेटा निकालें पर GitHub का सहायता पृष्ठ देखें ।
ग्रेग हेविगेल

14
ध्यान दें कि यह फ़ाइल को स्थानीय रूप से भी हटा देगा। यदि आप केवल रेपो डू से इसे हटाना चाहते हैं: git rm --cached file1.txt
वेस्टन गैंगर

5
यह ध्यान देने योग्य है कि यदि उस फ़ाइल में संवेदनशील जानकारी (जैसे क्रेडेंशियल्स) है तो आपको उन क्रेडेंशियल्स को तुरंत बदलना चाहिए । GitHub को उद्धृत करने के लिए "एक बार जब आप GitHub के लिए प्रतिबद्ध हो जाते हैं, तो आपको किसी भी डेटा पर विचार करना चाहिए जिसमें समझौता किया जाना है। यदि आपने पासवर्ड बनाया है, तो इसे बदल दें! यदि आपने कोई कुंजी की है, तो एक नया बनाएँ।"
c1moore

607

git rm file.txtरेपो से फ़ाइल को निकालता है, लेकिन इसे स्थानीय फ़ाइल सिस्टम से भी हटाता है

फ़ाइल को रेपो से निकालने के लिए और उसे स्थानीय फ़ाइल सिस्टम के उपयोग से हटाने के लिए नहीं :
git rm --cached file.txt

नीचे की सटीक स्थिति वह है जहां मैं अपने व्यवसाय की वेबसाइट के लिए संस्करण नियंत्रण बनाए रखने के लिए गिट का उपयोग करता हूं, लेकिन "मिकी" निर्देशिका एक सीएडी डेवलपर के साथ निजी सामग्री साझा करने के लिए एक tmp फ़ोल्डर था। जब उसे बड़ी फ़ाइलों की आवश्यकता होती है, तो मैंने एक निजी, अनलिंक की गई निर्देशिका बनाई और ब्राउज़र के माध्यम से लाने के लिए उसके लिए फ़ाइलों को वहां से हटा दिया। यह भूल जाने के बाद, मैंने बाद git add -Aमें वेबसाइट की आधार निर्देशिका से प्रदर्शन किया । इसके बाद, git statusनई फ़ाइलों को कमिट करने की जरूरत है। अब मुझे git के ट्रैकिंग और संस्करण नियंत्रण से उन्हें हटाने की आवश्यकता थी ...

नीचे दिया गया नमूना आउटपुट सिर्फ मेरे साथ क्या हुआ, जहां मैंने अनजाने में .003फ़ाइल को हटा दिया था । शुक्र है, मुझे परवाह नहीं है कि स्थानीय कॉपी का क्या हुआ है .003, लेकिन कुछ अन्य वर्तमान में बदली गई फाइलें अपडेट थीं जिन्हें मैंने अभी वेबसाइट पर बनाया है और स्थानीय फाइल सिस्टम पर हटाए जाने के लिए महाकाव्य होगा! "स्थानीय फ़ाइल प्रणाली" = लाइव वेबसाइट (एक महान अभ्यास नहीं है, लेकिन वास्तविकता है)

[~/www]$ git rm shop/mickey/mtt_flange_SCN.7z.003
error: 'shop/mickey/mtt_flange_SCN.7z.003' has local modifications
(use --cached to keep the file, or -f to force removal)
[~/www]$ git rm -f shop/mickey/mtt_flange_SCN.7z.003
rm 'shop/mickey/mtt_flange_SCN.7z.003'
[~/www]$ 
[~/www]$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    shop/mickey/mtt_flange_SCN.7z.003
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   shop/mickey/mtt_flange_SCN.7z.001
#   modified:   shop/mickey/mtt_flange_SCN.7z.002
[~/www]$ ls shop/mickey/mtt_flange_S*
shop/mickey/mtt_flange_SCN.7z.001  shop/mickey/mtt_flange_SCN.7z.002
[~/www]$ 
[~/www]$ 
[~/www]$ git rm --cached shop/mickey/mtt_flange_SCN.7z.002
rm 'shop/mickey/mtt_flange_SCN.7z.002'
[~/www]$ ls shop/mickey/mtt_flange_S*
shop/mickey/mtt_flange_SCN.7z.001  shop/mickey/mtt_flange_SCN.7z.002
[~/www]$ 
[~/www]$ 
[~/www]$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    shop/mickey/mtt_flange_SCN.7z.002
#   deleted:    shop/mickey/mtt_flange_SCN.7z.003
#
# Changed but not updated:
#   modified:   shop/mickey/mtt_flange_SCN.7z.001
[~/www]$

अद्यतन: इस उत्तर में कुछ ट्रैफ़िक मिल रहा है, इसलिए मैंने सोचा कि मैं अपने अन्य Git उत्तर शेयरों का एक महान संसाधनों का उल्लेख करूँगा : इस पृष्ठ में एक ग्राफिक है जो मेरे लिए Git को नष्ट करने में मदद करता है। "प्रो Git" पुस्तक ऑनलाइन है और मुझे बहुत मदद करता है।


6
आपको तब कुछ ऐसा करने की आवश्यकता होगी, git commit -m "Just removing file1.txt"और फिर, यदि आपके पास एक दूरस्थ भंडार है, तो कमिट को कुछ इस तरह से धक्का दें git push origin master
प्रतिबंध-जियोइंजीनियरिंग

77

सबसे पहले, यदि आप git rmविशेष रूप से कई फ़ाइलों के लिए उपयोग कर रहे हैं, तो विचार करें कि कोई भी वाइल्डकार्ड शेल द्वारा हल किया जाएगा, gitकमांड द्वारा नहीं ।

git rm -- *.anExtension
git commit -m "remove multiple files"

लेकिन, अगर आपकी फ़ाइल पहले से ही GitHub पर है, तो आप सीधे (जुलाई 2013 से) वेब GUI से इसे हटा सकते हैं!

बस अपनी रिपॉजिटरी में किसी भी फाइल को देखें, शीर्ष पर दिए गए ट्रैश आइकन पर क्लिक करें और किसी भी अन्य वेब-आधारित एडिट की तरह ही निष्कासन करें।

फिर git pullअपने स्थानीय रेपो पर " " और वह फ़ाइल को स्थानीय रूप से भी हटा देगा।
यह उत्तर (राउंडअबाउट) git रेपो से किसी फ़ाइल को हटाने का तरीका बनाता है?
(नहीं उल्लेख करने के लिए कि GitHub पर एक फाइल है एक "Git रेपो" में)


बटन हटाएं

(कमेटी उस फ़ाइल को हटाने को दर्शाएगी):

विलोपन

और जैसा है, वैसा ही हो गया।

इन सुविधाओं की मदद के लिए , फ़ाइलों को बनाने , स्थानांतरित करने , नाम बदलने और हटाने पर हमारे सहायता लेख पढ़ना सुनिश्चित करें।

नोट: चूंकि यह एक संस्करण नियंत्रण प्रणाली है, इसलिए यदि फ़ाइल को बाद में पुनर्प्राप्त करने की आवश्यकता होती है, तो Git की हमेशा आपकी पीठ होती है।

अंतिम वाक्य का अर्थ है कि हटाई गई फ़ाइल अभी भी इतिहास का हिस्सा है, और आप इसे आसानी से पर्याप्त रूप से पुनर्स्थापित कर सकते हैं (लेकिन अभी तक GitHub वेब इंटरफ़ेस के माध्यम से नहीं):

" Git repo में हटाई गई फ़ाइल को पुनर्स्थापित करें " देखें ।


4
आपको नीचे स्क्रॉल करना होगा और डिलीट करने के लिए "कमिट कमिटमेंट्स" को हिट करना होगा!
लेविंसनटेक्नोलाजी

1
यह बड़ी पाठ फ़ाइलों के लिए काम नहीं करता है। सर्वर फ़ाइल को स्क्रीनशॉट में रेंडर करने की कोशिश करता है और फिर 500 त्रुटि के साथ विफल हो जाता है।
केपकोडर

9
यह उत्तर github का उल्लेख कर रहा है, सवाल एक git रेपो के बारे में है। जीथब इंटरफ़ेस का उपयोग कैसे करें।
पीटर मार्शल

65

यह एकमात्र विकल्प है जिसने मेरे लिए काम किया।

git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch *.sql'

नोट: * .sql को अपने फ़ाइल नाम या फ़ाइल प्रकार से बदलें। बहुत सावधान रहें क्योंकि यह हर कमिट के माध्यम से जाएगा और इस फ़ाइल प्रकार को चीर देगा।

संपादित करें: ध्यान दें - इस आदेश के बाद आप धक्का या खींचने में सक्षम नहीं होंगे - आप 'असंबंधित इतिहास' को अस्वीकार कर देंगे आप पुश करने या खींचने के लिए 'गिट पुश --फोर्स-ओ मूल मास्टर' का उपयोग कर सकते हैं।


9
यह एक महान उत्तर है, लेकिन ध्यान दें कि अन्य उत्तरों के विपरीत, यह कमांड प्रतिबद्ध इतिहास को फिर से लिखता है और पैटर्न से मेल खाती सभी फाइलों को हटा देता है। यह विशेष रूप से उपयोगी है यदि आपने पाया कि आपने गलती से कुछ संवेदनशील जानकारी प्राप्त की है (और, यदि आवश्यक हो तो सफलतापूर्वक उपयोग कर सकते हैं - किसी भी दूरस्थ रिपो के इतिहास को फिर से लिखने के लिए इसे लागू किया गया है)।
yoniLavi

3
ठीक यही समस्या मेरे पास थी और इसे ठीक करने के लिए कुछ परीक्षण और त्रुटि हुई। एक लड़का जिसके साथ मैं काम कर रहा था, उसने कई बड़े डेटाबेस को कई सारे कमिट्स के माध्यम से वापस जाने वाले एक रेपो में शामिल कर लिया था। यही वजह है कि मैंने अपने उदाहरण में .sql का इस्तेमाल किया। मेरा रेपो इतना फूला हुआ और बड़ा था कि गीथब पुश को स्वीकार नहीं करेगा।
जेसन ग्लिसन

3
यदि आप एक दूरस्थ मास्टर का उपयोग कर रहे हैं, तो आपको कमिट करने के लिए मजबूर करना होगा और इसके साथ पुश करना होगाgit push --force -u origin master
AlbertMarkovski

2
@AlbertMarkovski क्षमा करें, मैं विशिष्ट नहीं था। Github वास्तव में पुश को स्वीकार नहीं करेगा क्योंकि रेपो उनके आकार की सीमा से परे था। कम से कम कई जीबी। उन्होंने मुझे काट दिया और मुझे इसके बारे में ईमेल किया। इसलिए, दुर्भाग्यवश, किसी भी तरह का जोर जबरदस्ती उस बिंदु पर मदद नहीं करेगा।
जेसन ग्लिसन

2
@JasonGlisson मैंने उस मुद्दे का भी सामना किया है जहां एक वीडियो दुर्घटना से एक रिपॉजिटरी में जुड़ गया।
AlbertMarkovski

34

इसके अतिरिक्त, यदि यह हटाया जाने वाला एक फ़ोल्डर है और यह बाद के बाल फ़ोल्डर या फ़ाइलें हैं, तो उपयोग करें:

git rm -r foldername

2
यह फोल्डर को लोकल से भी हटा देता है! Use git rm --cached -r <foldername>
एक्सिस

24

अधिक आम तौर पर, git helpइस तरह से कम से कम सरल प्रश्नों में मदद करेगा:

zhasper@berens:/media/Kindle/documents$ git help
usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [--html-path] [-p|--paginate|--no-pager] [--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE] [--help] COMMAND [ARGS]

The most commonly used git commands are:
   add        Add file contents to the index
   :
   rm         Remove files from the working tree and from the index

6
अधिक जटिल चीजों के लिए, मुझे git helpभ्रमित करने वाला लगता है, लेकिन यह साधारण चीजों के लिए अच्छा है :)
जेम्स पोली

9
यह वास्तव में git noobs के लिए बहुत अच्छा नहीं है क्योंकि "index" एक अवधारणा नहीं है git noobs से परिचित हैं। मैं एक git noob होने के व्यक्तिगत अनुभव से बात करता हूं :) इसके अलावा, मुझे लगता है कि यह कहने में बहुत कम भ्रमित है कि इंडेक्स से rm हटाने के बजाय हटाने के लिए एक फ़ाइल को स्टेज करता है (हालांकि यह अभी भी नॉब्स के लिए अर्थहीन है)।
रोमन स्टार्कोव

रोमकिन के साथ सहमत होना: वर्णन "कार्यशील पेड़ से फ़ाइलें और सूचकांक से निकालें" मुझे नहीं लगता है जैसे कि यह रेपो से फ़ाइल को निकालने का एक तरीका है। शायद अगर मुझे समझ में आ जाता तो बेहतर होता। इसके बजाय ऐसा लगता है जैसे आप सिर्फ अस्थिर फ़ाइलें हैं (और वैकल्पिक रूप से उन्हें काम करने वाले पेड़ से हटा रहे हैं - क्या यह आवश्यक रूप से रेपो को प्रभावित करेगा?)
LarsH

14

यदि आप फ़ाइल को रेपो से हटाना चाहते हैं, लेकिन इसे फ़ाइल सिस्टम में छोड़ दें (अनट्रैक हो जाएगा):

bykov@gitserver:~/temp> git rm --cached file1.txt
bykov@gitserver:~/temp> git commit -m "remove file1.txt from the repo"

यदि आप फ़ाइल को रेपो और फ़ाइल सिस्टम से हटाना चाहते हैं तो दो विकल्प हैं:

  1. यदि फ़ाइल में इंडेक्स में कोई परिवर्तन नहीं है:

    bykov@gitserver:~/temp> git rm file1.txt
    bykov@gitserver:~/temp> git commit -m "remove file1.txt"
    
  2. यदि फ़ाइल में इंडेक्स में चरणबद्ध परिवर्तन हैं:

    bykov@gitserver:~/temp> git rm -f file1.txt
    bykov@gitserver:~/temp> git commit -m "remove file1.txt"
    

12

git rm अब से केवल इस शाखा पर फ़ाइल को हटाएगा, लेकिन यह इतिहास में रहेगा और इसे याद रखेगा।

यह करने का सही तरीका है git filter-branch, जैसा कि अन्य लोगों ने यहां बताया है। यह उस फ़ाइल को हटाने के लिए शाखा के इतिहास में हर प्रतिबद्ध को फिर से लिखेगा।

लेकिन, ऐसा करने के बाद भी, जीआईटी इसे याद रख सकता है क्योंकि रिफ्लॉज, रीमोट्स, टैग्स और ऐसे में इसके संदर्भ हो सकते हैं।

यदि आप इसे एक चरण में पूरी तरह से अलग करना चाहते हैं, तो मैं आपको उपयोग करने की सलाह देता हूं git forget-blob

https://ownyourbits.com/2017/01/18/completely-remove-a-file-from-a-git-repository-with-git-forget-blob/

यह आसान है, बस करो git forget-blob file1.txt

यह हर संदर्भ को हटा देगा, कर देगा git filter-branch, और अंत में गिट कचरा संग्रहकर्ता git gcको पूरी तरह से आपके रेपो में इस फ़ाइल से छुटकारा पाने के लिए चलाएगा ।


10

एक और तरीका है यदि आप rm कमांड का उपयोग करके अपने स्थानीय फ़ोल्डर से फ़ाइल को हटाना चाहते हैं और फिर दूरस्थ सर्वर में परिवर्तनों को धक्का दें।

rm file1.txt

git commit -a -m "Deleting files"

git push origin master

10

नोट: यदि आप फ़ाइल को केवल git उपयोग से नीचे हटाना चाहते हैं:

git rm --cached file1.txt

यदि आप हार्ड डिस्क से भी हटाना चाहते हैं:

git rm file1.txt

यदि आप किसी फ़ोल्डर को हटाना चाहते हैं (फ़ोल्डर में कुछ फाइलें हो सकती हैं), तो आपको नीचे दिए अनुसार पुनरावर्ती कमांड का उपयोग करना चाहिए:

git rm -r foldername

यदि आप किसी अन्य फ़ोल्डर के अंदर एक फ़ोल्डर को निकालना चाहते हैं

git rm -r parentFolder/childFolder

फिर, आप कर सकते हैं commitऔर pushहमेशा की तरह। हालाँकि, यदि आप हटाए गए फ़ोल्डर को पुनर्प्राप्त करना चाहते हैं, तो आप इसका अनुसरण कर सकते हैं: गिट से हटाए गए फ़ाइलों को पुनर्प्राप्त करना संभव है।

डॉक्टर से:

git rm [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] <file>…​

विकल्प

<file>…​

Files to remove. Fileglobs (e.g. *.c) can be given to remove all matching files. If you want Git to expand file glob characters, you

उन्हें शेल-एस्केप करने की आवश्यकता हो सकती है। एक निर्देशिका निर्देशिका नाम (जैसे dir / file1 और dir / file2 को हटाने के लिए dir) को निर्देशिका में सभी फ़ाइलों को हटाने के लिए दिया जा सकता है, और पुनरावर्ती सभी उप-निर्देशिकाओं को दिया जा सकता है, लेकिन इसके लिए -r विकल्प की स्पष्ट रूप से आवश्यकता होती है। -f --force

Override the up-to-date check.

-n --dry-run

Don’t actually remove any file(s). Instead, just show if they exist in the index and would otherwise be removed by the command.

-r

Allow recursive removal when a leading directory name is given.

--

This option can be used to separate command-line options from the list of files, (useful when filenames might be mistaken for

कमांड-लाइन विकल्प)। --cached

Use this option to unstage and remove paths only from the index. Working tree files, whether modified or not, will be left alone.

--ignore-unmatch

Exit with a zero status even if no files matched.

-q --quiet

git rm normally outputs one line (in the form of an rm command) for each file removed. This option suppresses that output.

आधिकारिक डॉक पर अधिक पढ़ें।


7

किसी विशिष्ट फ़ाइल को हटाने के लिए

git rm फ़ाइल नाम

एकल शॉट में एक निर्देशिका से सभी अयोग्य फ़ाइलों को साफ करने के लिए

git क्लीन -fdx


5

यदि आपके पास Windows एप्लिकेशन के लिए GitHub है, तो आप 5 आसान चरणों में एक फ़ाइल को हटा सकते हैं:

  • सिंक पर क्लिक करें।
  • उस निर्देशिका पर क्लिक करें जहां फ़ाइल स्थित है और फ़ाइल के अपने नवीनतम संस्करण का चयन करें।
  • टूल पर क्लिक करें और "यहां एक शेल खोलें" चुनें।
  • शेल में, टाइप करें: "rm {फ़ाइल नाम}" और हिट दर्ज करें।
  • परिवर्तन और resync प्रतिबद्ध करें।

5

मेरे मामले में मैंने कुछ कमिट के बाद गिथब पर फाइल हटाने की कोशिश की लेकिन कंप्यूटर पर सेव कर ली

git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch file_name_with_path' HEAD
git push --force -u origin master

और बाद में इस फ़ाइल को अनदेखा कर दिया गया


3
  1. सबसे पहले, स्थानीय रिपॉजिटरी से फ़ाइलें निकालें।

    git rm -r फ़ाइल-नाम

    या, केवल स्थानीय रिपॉजिटरी से, लेकिन फाइल सिस्टम से फाइल हटा दें

    git rm - संचित फ़ाइल-नाम

  2. दूसरे, प्रतिबद्ध स्थानीय भंडार में परिवर्तन।

    git commit -m "unwanted files or some inline comments"   
    
  3. अंत में, स्थानीय परिवर्तनों को दूरस्थ रिपॉजिटरी में अपडेट / पुश करें।

    git push 
    

क्या यह गलती से जोड़ी गई और धकेल दी गई फ़ाइल से जुड़ी हर चीज को हटा देगा?
बापर्स

1

मैंने बहुत सारे सुझाए गए विकल्पों की कोशिश की और कोई भी काम नहीं कर पाया (मैं विभिन्न समस्याओं को सूचीबद्ध नहीं करूँगा)। मैंने जो किया, जो काम किया, वह सरल और सहज था (मेरे लिए) था:

  1. पूरे स्थानीय रेपो को कहीं और ले जाएं
  2. मास्टर से अपने स्थानीय ड्राइव पर फिर से रेपो क्लोन करें
  3. # 1 में अपनी मूल प्रति से फ़ाइलों / फ़ोल्डर को # 2 में नए क्लोन में वापस कॉपी करें
  4. सुनिश्चित करें कि समस्या बड़ी फ़ाइल या तो नहीं है या .gitignore फ़ाइल में शामिल नहीं है
  5. सामान्य git ऐड / git कमिट / git पुश करें

1

आपके द्वारा रेपो से फ़ाइल को हटाने के बाद आप BFG रेपो-क्लीनर का git rmउपयोग कर सकते हैं और रेपो इतिहास से फ़ाइल को पूरी तरह से आसानी से हटा सकते हैं ।


0

मेरे पास ओबीजी और बिन फाइलें हैं जो गलती से रेपो में बन गई थीं कि मैं अपनी 'बदली हुई फाइलों' की सूची को प्रदूषित नहीं करना चाहता

जब मैंने देखा कि वे रिमोट से गए थे, तो मैंने इसे जोड़कर उन्हें अनदेखा कर दिया.gitignore

/*/obj
/*/bin

समस्या यह है कि वे पहले से ही रिमोट में हैं, और जब वे बदल जाते हैं, तो वे बदल जाते हैं और बदली हुई फ़ाइल सूची को प्रदूषित करते हैं।

उन्हें देखने से रोकने के लिए, आपको दूरस्थ रिपॉजिटरी से पूरे फ़ोल्डर को हटाने की आवश्यकता है।

एक कमांड प्रॉम्प्ट में:

  1. रेपो फ़ोल्डर में सीडी (यानी C:\repos\MyRepo)
  2. मैं SSIS \ obj हटाना चाहता हूँ। ऐसा लगता है कि आप केवल शीर्ष स्तर पर हटा सकते हैं, इसलिए अब आपको SSIS में सीडी की आवश्यकता है: (यानी C:\repos\MyRepo\SSIS)
  3. अब मैजिक इन्कैंटेशन टाइप करें git rm -r -f obj
    • rm = निकालें
    • -r = recursively को हटा दें
    • -f = बल का मतलब है, कारण तुम वास्तव में इसका मतलब है
    • obj फोल्डर है
  4. अब दौड़ो git commit -m "remove obj folder"

मुझे एक खतरनाक संदेश मिला, जिसमें कहा गया था कि 13 फाइलों ने 315222 विलोपन बदल दिए हैं

तब क्योंकि मुझे सीएमडी लाइन नहीं दिखानी थी, मैं विजुअल Sstudio में गया और इसे रिमोट पर लागू करने के लिए एक सिंक किया।


0

यदि आपको एक निर्धारित एक्सटेंशन से फ़ाइलों को निकालने की आवश्यकता है (उदाहरण के लिए, संकलित फ़ाइलें) तो आप उन सभी को एक बार में हटाने के लिए निम्न कार्य कर सकते हैं:

git remove -f *.pyc

0

प्रलेखन के अनुसार ।

git rm --cached giant_file

जब संवेदनशील डेटा की बात आती है - बेहतर नहीं कहते हैं कि आपने फ़ाइल को हटा दिया है, बल्कि इसे अंतिम ज्ञात कमिट में शामिल करें:

0. अंतिम वचन में संशोधन करें

git commit --amend -CHEAD

अगर आप फ़ाइल को सभी git हिस्ट्री से डिलीट करना चाहते हैं, के अनुसार दस्तावेज के आपको निम्नलिखित कार्य करने चाहिए:

1. इसे अपने स्थानीय इतिहास से हटा दें

git filter-branch --force --index-filter \ "git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA" \  --prune-empty --tag-name-filter cat -- --all
# Replace PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA with the path to the file you want to remove, not just its filename
  1. इस फ़ाइल को .gitignore में शामिल करना न भूलें (यदि यह एक ऐसी फ़ाइल है जिसे आप कभी साझा नहीं करना चाहते हैं (जैसे पासवर्ड ...):
echo "YOUR-FILE-WITH-SENSITIVE-DATA" >> .gitignore
git add .gitignore
git commit -m "Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore"

3. यदि आपको रिमोट से हटाने की आवश्यकता है

git push origin --force --all

4. यदि आपको इसे टैग रिलीज़ से हटाने की आवश्यकता है:

git push origin --force --tags

-7

यदि आप अपने स्थानीय रेपो में नहीं बल्कि गिट रेपो में फाइल करते हैं तो इन्सेस्ट करें, फिर बस वेब इंटरफेस के माध्यम से गिट रेपो में फाइल खोलें और इंटरफेस में राइट कॉर्नर पर डिलीट बटन खोजें। इंटरफ़ेस हटाने के विकल्प को देखने के लिए यहां क्लिक करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.