वर्तमान गिट काम करने वाले पेड़ से स्थानीय (अनट्रैक) फ़ाइलों को कैसे हटाएं


6838

आप अपने वर्तमान कार्यशील पेड़ से अनियोजित स्थानीय फ़ाइलों को कैसे हटाते हैं?


86
यह इंटरएक्टिव git चीट शीट ndpsoftware.com/git-cheatsheet.html git वर्कस्पेस को दिखाता है (Google आपको "वर्कस्पेस" के साथ "वर्किंग कॉपी" के साथ बेहतर परिणाम देता है)।
क्नील

28
नोट: यदि आप केवल कुछ अनकही फ़ाइलों को हटाना चाहते हैं , लेकिन उनमें से सभी नहीं है , तो git cleanअब एक इंटरैक्टिव मोड है! मेरे इस अन्य प्रश्न का उत्तर देखें : git 1.8.4+
VonC

17
ध्यान दें कि आप गिट शाखा से फाइलें नहीं हटा रहे हैं, क्योंकि शाखा एक कमिट का संदर्भ है और इसलिए इसमें अनट्रैक फाइलें नहीं हैं। वे केवल काम कर रहे निर्देशिका में मौजूद हैं और शाखाओं के साथ कुछ नहीं करना है। यह शायद सिर्फ शब्दावली स्पष्टीकरण है।
पावेल Paमरदा

6
बिना समझे और उन नए Git को चलाने के लिए समझ को स्पष्ट करने के लिए - git स्टेटस चलाएं और यदि यह किसी फाइल को अनट्रैक के रूप में दिखाता है, और आप रेपो में उस फाइल को नहीं चाहते हैं, तो आप बस अपने फाइल सिस्टम पर जा सकते हैं और इसे हटा सकते हैं या इसका उपयोग कर सकते हैं। । यह आपके स्थानीय रेपो या गिट के लिए कुछ भी बुरा नहीं करेगा। आप git cleanनीचे दिए गए उत्तरों में भी या कुछ भिन्नता का उपयोग कर सकते हैं, जिसमें सिर्फ चयनात्मक फ़ाइलों को हटाने के लिए इंटरैक्टिव संस्करण शामिल है, लेकिन इंटरैक्टिव मोड थकाऊ हो सकता है। आप जो कुछ भी करते हैं, सुनिश्चित करें कि आप समझ सकते हैं कि क्या git cleanहटाएंगे या उपयोग करेंगे --dry-runयह आपको बिना कुछ हटाए बताता है।
लाइटसीसी

4
यदि फ़ाइलें अभी तक ट्रैक नहीं की जा रही हैं, तो क्या आप बिना गिट के उन्हें हटा नहीं सकते? rm files-to-be-deleted
mhatch

जवाबों:


8728

git-clean - काम करने वाले पेड़ से अनट्रैक की गई फ़ाइलों को हटा दें

सार

git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>…​

विवरण

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

आम तौर पर, Git के लिए केवल अज्ञात फ़ाइलों को हटा दिया जाता है, लेकिन यदि -xविकल्प निर्दिष्ट किया जाता है, तो अनदेखा फ़ाइलें भी हटा दी जाती हैं। उदाहरण के लिए, सभी निर्माण उत्पादों को हटाने के लिए उपयोगी हो सकता है।

यदि कोई वैकल्पिक <path>...तर्क दिया जाता है, तो केवल वे ही रास्ते प्रभावित होते हैं।


चरण 1 यह दिखाने के लिए है कि -nविकल्प का उपयोग करके क्या हटाया जाएगा :

# Print out the list of files which will be removed (dry run)
git clean -n

क्लीन स्टेप - सावधान: इससे फाइल्स डिलीट हो जाएँगी :

# Delete the files from the repository
git clean -f
  • निर्देशिकाओं को हटाने के लिए, चलाएं git clean -f -dयाgit clean -fd
  • उपेक्षित फ़ाइलों को हटाने के लिए, चलाएं git clean -f -Xयाgit clean -fX
  • अनदेखा और गैर-अनदेखा फ़ाइलों को हटाने के लिए, चलाएं git clean -f -xयाgit clean -fx

Xबाद के दो आदेशों के लिए मामले के अंतर पर ध्यान दें

यदि clean.requireForceआपके कॉन्फ़िगरेशन में "सही" (डिफ़ॉल्ट) सेट है, तो किसी को निर्दिष्ट करने की आवश्यकता है -fअन्यथा वास्तव में कुछ भी नहीं होगा।

git-cleanअधिक जानकारी के लिए फिर से डॉक्स देखें।


विकल्प

-f, --force

अगर Git कॉन्फ़िगरेशन वेरिएबल clean.requireForce को झूठा सेट नहीं किया जाता है, तो git क्लीन चलाने के लिए मना कर दिया जाएगा -f, जब तक कि दिया नहीं जाता है , -nया -i

-x

.Gitignore (प्रति निर्देशिका) से पढ़े जाने वाले मानक उपेक्षा नियमों का उपयोग न करें $GIT_DIR/info/exclude, लेकिन फिर भी -eविकल्पों के साथ दिए गए नियमों की अनदेखी करें। यह बिल्ड उत्पादों सहित सभी अनट्रैक फ़ाइलों को हटाने की अनुमति देता है। एक साफ निर्माण का परीक्षण करने के लिए एक प्राचीन कार्यशील निर्देशिका बनाने के लिए इसका उपयोग किया जा सकता है (संभवतः गिट रीसेट के साथ संयोजन में)।

-X

जीआईटी द्वारा नजरअंदाज की गई फाइलें ही निकालें। यह सब कुछ खरोंच से पुनर्निर्माण करने के लिए उपयोगी हो सकता है, लेकिन मैन्युअल रूप से बनाई गई फ़ाइलों को रखें।

-n, --dry-run

वास्तव में कुछ भी न निकालें, बस दिखाएं कि क्या किया जाएगा।

-d

अनट्रैक की गई फ़ाइलों के अलावा अनट्रैकड डाइरेक्टरीज़ को हटा दें। अगर एक अनट्रैकड डायरेक्टरी को एक अलग Git रिपॉजिटरी द्वारा प्रबंधित किया जाता है, तो इसे डिफ़ॉल्ट रूप से हटाया नहीं जाता है। -fयदि आप वास्तव में ऐसी निर्देशिका को हटाना चाहते हैं तो दो बार विकल्प का उपयोग करें ।


287
git clean -fकेवल उसी निर्देशिका में काम करता है जहां इसे (और उपनिर्देशिका) कहा जाता है। यदि आप पूरी कामकाजी कॉपी को साफ करना चाहते हैं, तो आपको इसे इसकी मूल निर्देशिका में कॉल करना चाहिए।
एडुआर्डो बीज़र्रा

17
यह अंदर की सभी फाइलों को भी हटा रहा है। मैं केवल फ़ाइलें / फ़ोल्डर जो नए और .gitignore में नहीं हैं हटाने की आवश्यकता
Kostanos

24
@Kostanos यदि आप .गितिग्नोर में मौजूद फ़ाइलों को हटाना नहीं चाहते हैं, तो -x ध्वज प्रदान न करें।
लो-टैन

51
git clean -f :/काम करता है जैसे कि आपने इसे रूट रेपो डायर में चलाया था। बाद में उत्तर भी देखें कि सबमॉडल्स के लिए क्या जवाबदेही हैgit clean -ffxd :/
यहाँ

18
@ मिचेल गट क्लीन -xfd भी आपके .itignignore में सभी फिल्मों को आसानी से प्राप्त कर लेंगे और वे पुनर्प्राप्त करने योग्य नहीं हैं
thedanotto

986

git clean -f -dयह सुनिश्चित करने के लिए उपयोग करें कि निर्देशिकाओं को भी हटा दिया गया है।

  1. वास्तव में कुछ भी न निकालें, बस दिखाएं कि क्या किया जाएगा।

    git clean -n
    

    या

    git clean --dry-run
    
  2. अनट्रैक की गई फ़ाइलों के अलावा अनट्रैकड डाइरेक्टरीज़ को हटा दें। अगर एक अनट्रैकड डायरेक्टरी को एक अलग Git रिपॉजिटरी द्वारा प्रबंधित किया जाता है, तो इसे डिफ़ॉल्ट रूप से हटाया नहीं जाता है। -fयदि आप वास्तव में ऐसी निर्देशिका को हटाना चाहते हैं तो दो बार विकल्प का उपयोग करें ।

    git clean -fd
    

आप तब जांच सकते हैं कि क्या आपकी फाइलें वास्तव में साथ गई हैं git status


115
जैसा कि पहले कहा गया है, इसे सूखने के लिए अच्छा हैgit clean -n -d
Ms01

15
एक ही बात करने के लिए है git clean -ndऔर git clean -fd
9

477

मुझे आश्चर्य है कि पहले किसी ने इसका उल्लेख नहीं किया है:

git clean -i

यह इंटरएक्टिव के लिए खड़ा है और आपको प्रभावित फाइलों को शामिल / बाहर करने की संभावना को नष्ट करने वाला एक त्वरित अवलोकन मिलेगा। कुल मिलाकर, --dry-runअसली सफाई से पहले अनिवार्य चलने की तुलना में अभी भी तेज है ।

-dअगर आपको खाली फोल्डर की देखभाल करनी है तो आपको टॉस करना होगा। अंत में, यह एक अच्छा उपनाम के लिए बनाता है:

git iclean

कहा जा रहा है कि, इंटरैक्टिव कमांड्स की अतिरिक्त हैंड होल्डिंग अनुभवी उपयोगकर्ताओं के लिए थका देने वाली हो सकती है। इन दिनों मैं सिर्फ पहले से ही उल्लेख किया गया हैgit clean -fd


16
@ pal4life यह 1.8.4 में जोड़ा गया था, आप एक पुराने संस्करण को चला रहे होंगे? github.com/git/git/blob/master/Documentation/RelNotes/1.8.4.txt
मटियास बैकमैन

मुझे यह पसंद है - मैं अपने बैश इतिहास में किसी भी अन्य विकल्पों की तुलना में अधिक आरामदायक हूं, क्योंकि अगर मैं गलती से ctrl-r या ctrl-p करता हूं तो यह कोई बड़ी बात नहीं है।
csvoss


250

अगर अनट्रैकड डायरेक्टरी अपनी खुद की एक जीट रिपॉजिटरी है (जैसे सबमॉड्यूल), तो आपको -fदो बार उपयोग करने की आवश्यकता है :

git clean -d -f -f


4
BTW, यह दस्तावेज़ीकरण में लिखा गया है : Git, .IT उप निर्देशिका या फ़ाइल के साथ निर्देशिकाओं को हटाने से इंकार कर देगा जब तक कि दूसरा -f नहीं दिया जाता है। लेकिन फिर भी धन्यवाद!
मैक्सिम सुसलोव

247

अनचाही फ़ाइलों को हटाने का सरल तरीका

सभी अनटैक की गई फ़ाइलों को हटाने के लिए, सरल तरीका यह है कि उन सभी को पहले जोड़ा जाए और नीचे दिए गए अनुसार रीपो को रीसेट करें

git add --all
git reset --hard HEAD


8
आप git add --allद्वारा प्रतिस्थापित कर सकते हैं git add .। तो आप इसे ऑनलाइन में एक छोटे तरीके से कर सकते हैं git add . && git reset --hard HEAD ( इस कमांड के साथ बहुत ही सावधानी बरतें )
रूसो

22
इस पर क्यों प्रयोग करें git clean?
user2864740

8
क्योंकि git cleanजाहिरा तौर पर भी सब कुछ हटा दिया जाता है जिसे नजरअंदाज कर दिया जाता है। इसने मेरा node_modulesफोल्डर ही डिलीट कर दिया । ऐसा करने से पहले सभी फ़ाइलों को अनदेखा करने के अलावा सभी चरण होंगे, और फिर उन्हें रीसेट करके हटा दें। नजरअंदाज की गई फाइलों को छुआ नहीं जाएगा।
एंड्रियास

5
@ और यह मेरे लिए उपेक्षित फ़ाइलों को नष्ट नहीं करता है (git 2.14.1)। वास्तविक विलोपन (या उपयोग ) करने से पहले आपको वैसे भी चलना चाहिएgit clean -ngit clean -i
Qw3ry

8
git cleanयदि आप या तो -xया -Xविकल्प का उपयोग करते हैं, तो केवल अनदेखा फ़ाइलों को हटा देता है , अन्यथा यह केवल अनट्रैक की गई फ़ाइलों को हटाता है।
डबलडाउन

140

मुझे पसंद है git stash push -uक्योंकि आप उन सभी को पूर्ववत कर सकते हैं git stash pop

संपादित करें: इसके अलावा मुझे एक स्टाॅक में अनट्रैक फाइल दिखाने का एक तरीका मिला (उदा git show stash@{0}^3) https://stackoverflow.com/a/12681856/338986

EDIT2: के git stash saveपक्ष में पदावनत किया जाता है push। धन्यवाद @ स्क्रिप्ट-भेड़िया।


3
क्या आप समझा सकते हैं -यू स्टेश पर? मैं इस बात का पालन नहीं करता हूं कि यह कैसे अलग तरीके से काम करता है। मैंने यह कोशिश की और यह काम कर गया। गिट डॉक्स पर देखा और वहाँ भी नहीं मिला।
विन्नमुक्का

9
-uके बराबर है --include-untracked। आप इसके साथ मदद पा सकते हैं git help stash
हिरोशी

3
@ हिरोशी धन्यवाद! एक दर्जन अलग-अलग लोगों से हर बार हल करने की कोशिश के बाद यह वही है जो आखिरकार काम कर रहा है ... मट्ठा! यहां तक ​​कि एक गिट स्टैश ने नाडा किया। सेव - यू ने अनट्रेंड की देखभाल की। रीसेट हार्ड / क्लीन फोर्स / आदि इनमें से किसी ने भी मेरे लिए कुछ नहीं किया।
किलोज

3
saveविकल्प के पक्ष में पदावनत किया गया था push, जो एक ही है लेकिन अधिक नहीं करता है। आप यहाँ और अधिक पढ़ सकते हैं, /programming/44680028/whats-the-difference-between-git-stash-save-and-git-stash-push/44681952
स्क्रिप्ट वुल्फ

120

यह वही है जो मैं हमेशा उपयोग करता हूं:

git clean -fdx

एक बहुत बड़ी परियोजना के लिए आप इसे कई बार चलाना चाह सकते हैं।


@Martin जिन परियोजनाओं पर मैं काम कर रहा हूं उनमें से एक +80 साल पुराना है +80 डेवलपर्स सक्रिय रूप से कोडिंग के साथ। Git कभी-कभी इसे पहली पास पर साफ़ करने में विफल रहता है।
ऑस्कर फ्रैक्सेड्स

1
मैं इसकी पुष्टि कर सकता हूं, इसलिए यह अभी भी 2020 में मान्य है। हम एक बड़े प्रोजेक्ट पर भी काम कर रहे हैं और मुझे इसे 4-5 बार चलाना था जब तक कि जीआईटी को हटाने के लिए कोई और फाइल नहीं मिली।
टर्बोलोस्ट

90

git-clean वह है जो आप ढूंढ रहे हैं। इसका उपयोग काम करने वाले पेड़ से फ़ाइलों को हटाने के लिए किया जाता है।


86

यदि विशेष उपनिर्देशिका से अनट्रैक की गई फ़ाइलों को हटाने की आवश्यकता है,

git clean -f {dir_path}

और अनट्रेंड डायर / फ़ाइलों और उपेक्षित फ़ाइलों को हटाने का संयुक्त तरीका।

git clean -fxd {dir_path}

इसके बाद आपके पास केवल संशोधित फ़ाइलें होंगी git status


68

इस रेपो + सबमॉड्यूल में मौजूद सभी अतिरिक्त फोल्डर और फाइलों को हटा दें

यह आपको ताजा क्लोन के समान अवस्था में मिलता है।

git clean -ffdx

इस रेपो में सभी अतिरिक्त फ़ोल्डरों और फ़ाइलों को निकालें, लेकिन इसके सबमॉड्यूल्स को नहीं

git clean -fdx

अतिरिक्त फ़ोल्डर निकालें, लेकिन फ़ाइलें नहीं (उदा। निर्माण या लॉग फ़ोल्डर)

git clean -fd

अतिरिक्त फ़ोल्डर + अनदेखा फ़ाइलें निकालें (लेकिन नई जोड़ी गई फ़ाइलें नहीं)

यदि फ़ाइल को नजरअंदाज नहीं किया गया था और अभी तक चेक-इन नहीं किया गया है तो यह रुक जाती है। राजधानी एक्स पर ध्यान दें।

git clean -fdX

नया इंटरैक्टिव मोड

git clean

57

git clean -fd निर्देशिका निकालता है

git clean -fX उपेक्षित फ़ाइलों को हटाता है

git clean -fx अनदेखा और अन-अनदेखा फ़ाइलों को निकालता है

संयोजन के रूप में उपरोक्त सभी विकल्पों का उपयोग किया जा सकता है

git clean -fdXx

अधिक मदद के लिए जाँच मैनुअल


10
आदेश git clean -fdXxत्रुटि संदेश "घातक: -x और -X को एक साथ उपयोग नहीं किया जा सकता" (git-2.8 का उपयोग करके) पैदा करता है। अपने उत्तर के भीतर अपने अंतिम वाक्य के लिए, कृपया मैनुअल का लिंक प्रदान करें। चीयर्स
ओलिब्रे

क्रम में दो कमांड चलाएं: git क्लीन -fdX, git क्लीन -fdx
क्लॉक ZHONG

55

ठीक है, अनचाही फ़ाइलों और फ़ोल्डरों को डिलीट करना gitकमांड लाइन में आसान है , बस इसे इस तरह से करें:

git clean -fd

इसे करने से पहले डबल चेक करें क्योंकि यह बिना कोई इतिहास बनाए फाइलों और फ़ोल्डरों को हटा देगा ...

इस मामले में भी, -fबल -dके लिए खड़ा है और निर्देशिका के लिए खड़ा है ...

इसलिए, यदि आप केवल फ़ाइलों को हटाना चाहते हैं, तो आप केवल उपयोग कर सकते हैं -f:

git clean -f

यदि आप (डायरेक्ट्री) और फाइल्स को हटाना चाहते हैं , तो आप केवल अनट्रेक्टेड डायरेक्ट्री और फाइल्स को डिलीट कर सकते हैं:

git clean -fd

इसके अलावा, आप उन -xफ़ाइलों को शामिल करने के लिए ध्वज का उपयोग कर सकते हैं जिन्हें गिट द्वारा अनदेखा किया गया है। यह सहायक होगा यदि आप सब कुछ हटाना चाहते हैं।

और -iझंडे को जोड़कर , आपको एक-एक करके फाइलों को हटाने की अनुमति के लिए पूछ रहा है।

यदि आप निश्चित नहीं हैं और पहले चीजों को जांचना चाहते हैं, तो -nझंडा जोड़ें ।

-qयदि आप सफल विलोपन के बाद कोई रिपोर्ट नहीं देखना चाहते हैं तो उपयोग करें ।

मैं इसे और अधिक यादगार बनाने के लिए नीचे दी गई छवि भी बनाता हूं, विशेष रूप से मैंने कई लोगों को -fकभी-कभी फ़ोल्डर की सफाई के लिए भ्रमित होते देखा है या इसे किसी तरह मिलाया है!


अनचाही फाइल और फोल्डर को डिलीट करना


उस छवि के साथ क्या है?
पचेरियर

37

उपयोग करने का एक बेहतर तरीका है: साफ सफाई

git clean -d -x -f

यह निर्देशिका (-d)और अनदेखा की गई फ़ाइलों सहित अनट्रैक की गई फ़ाइलों को हटा देता है git (-x)

इसके अलावा, की जगह -fतर्क के साथ -nएक प्रदर्शन करने के लिए dry-runया -iइंटरैक्टिव मोड के लिए है और यह आपको बता देंगे क्या निकाल दिया जाएगा।


25

उपयोगकर्ता इंटरैक्टिव दृष्टिकोण:

git clean -i -fd

Remove .classpath [y/N]? N
Remove .gitignore [y/N]? N
Remove .project [y/N]? N
Remove .settings/ [y/N]? N
Remove src/com/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/arsdumpgenerator/s3/ [y/N]? y

नजरअंदाज फाइलों के लिए निर्देशिका -x के
लिए बल
-d के लिए इंटरैक्टिव -f के लिए -i
(यदि आवश्यक हो तो जोड़ें)

नोट: ऐड -एन या -ड्राइ-रन सिर्फ यह जांचने के लिए कि यह क्या करेगा।


20

ऐसी स्थिति के लिए एक जीवनशैली जिसका मैंने अभी आविष्कार किया और कोशिश की (जो पूरी तरह से काम करती है):

git add .
git reset --hard HEAD

सावधान रहें! इसे करने से पहले किसी भी आवश्यक परिवर्तन (गैर-अनियोजित फ़ाइलों में भी) करना सुनिश्चित करें


3
कम से कम यह एक अलग दृष्टिकोण है। :) एक और तरीका है, जो हटाए गए फ़ाइलों को फिर से रोकना याद रखेगा, लेकिन किसी भी शाखा में नहीं होगा:git add . git commit -m 'about to delete' git reset --hard HEAD~
joeytwiddle

2
इससे भी अधिक त्वरित तरीका हैgit add . && git reset --hard HEAD
थिब्जी

3
git add . && git reset --hard
प्लेमोर

यह नहीं हो सकता है कि आप क्या चाहते हैं अगर आप भी बदलाव चाहते हैं जो आप करना चाहते हैं।
लैकोस्टेनकोडर 20

@AlexanderMills git reset --hardनवीनतम प्रतिबद्ध की स्थिति के लिए सभी परिवर्तन किए गए परिवर्तनों को रीसेट करता है। इसलिए हमें सबसे पहले जरूरत है git add .- कि सभी अनटैक की गई फ़ाइलों को चरणबद्ध करें (ताकि वे रीसेट हो जाएं, भी)
मोबाइल

19

git clean -f -d -x $(git rev-parse --show-cdup)रूट डाइरेक्टरी पर क्लीन लागू होता है, चाहे आप इसे रिपॉजिटरी डायरेक्ट्री ट्री के भीतर ही क्यों न कहें। मैं इसे हर समय उपयोग करता हूं क्योंकि यह आपको उस फ़ोल्डर को छोड़ने के लिए मजबूर नहीं करता है जहां आप अभी काम कर रहे हैं और उस जगह से सही और साफ करने की अनुमति देता है जहां आप हैं।

सुनिश्चित करें कि झंडे रहो -f, -d, -xअपनी आवश्यकताओं से मिलान:

-d
       Remove untracked directories in addition to untracked files. If an
       untracked directory is managed by a different Git repository, it is
       not removed by default. Use -f option twice if you really want to
       remove such a directory.

-f, --force
       If the Git configuration variable clean.requireForce is not set to
       false, git clean will refuse to delete files or directories unless
       given -f, -n or -i. Git will refuse to delete directories with .git
       sub directory or file unless a second -f is given. This affects
       also git submodules where the storage area of the removed submodule
       under .git/modules/ is not removed until -f is given twice.

-x
       Don't use the standard ignore rules read from .gitignore (per
       directory) and $GIT_DIR/info/exclude, but do still use the ignore
       rules given with -e options. This allows removing all untracked
       files, including build products. This can be used (possibly in
       conjunction with git reset) to create a pristine working directory
       to test a clean build.

अन्य झंडे भी उपलब्ध हैं, बस जाँच करें git clean --help


BTW आप सिर्फ साफ {झंडे} को साफ कर सकते हैं: / यदि आप रेपो रूट में कमांड चलाते हैं तो ऐसा होगा
The-null-Pointer-

19

मेरे लिए केवल निम्नलिखित काम किया:

git clean -ffdx

अन्य सभी मामलों में, मुझे कुछ उपनिर्देशिकाओं के लिए "स्किपिंग निर्देशिका" संदेश मिल रहा था ।


2
धन्यवाद। मैंने बाहर छोड़ दिया -xऔर सिर्फ git clean -ffd.gitignore में फ़ाइलों को मिटाने से बचने के लिए इस्तेमाल किया ।
फ़ेकमोर

15

यदि आप केवल 'git स्टेटस' द्वारा अनटैक की गई फ़ाइलों को हटाना चाहते हैं

git stash save -u
git stash drop "stash@{0}"

मैं इसे 'git clean' पसंद करता हूं क्योंकि 'git clean' git द्वारा नजरअंदाज की गई फाइलों को हटा देगा, इसलिए आपके अगले बिल्ड को सब कुछ पुनर्निर्माण करना होगा और आप अपनी IDE सेटिंग्स भी खो सकते हैं।


3
यह ट्रैक की गई फ़ाइलों के लिए मान्य परिवर्तनों को भी हटा देगा। मैं इसकी सिफारिश नहीं करूंगा।
code_dredd

2
हाँ, आप पहले ट्रैक की गई फ़ाइलों में परिवर्तन करना चाहते हैं।
जैज़देव

14

वास्तव में हटाने से पहले क्या हटाया जाएगा यह जानने के लिए:

git clean -d -n

यह कुछ इस तरह उत्पादन होगा:

Sample.txt को हटा देगा

पिछली कमांड के आउटपुट में सूचीबद्ध सब कुछ हटाने के लिए:

git clean -d -f

यह कुछ इस तरह उत्पादन होगा:

Sample.txt हटाना


11

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

git clean -fdn

यह आपको उन फ़ाइलों की सूची दिखाएगा जिन्हें हटा दिया जाएगा। अब वास्तव में उन फ़ाइलों को हटाने के लिए इस कमांड का उपयोग करें:

git clean -fd

11

`Git clean` कमांड चलाते समय सावधान रहें।

हमेशा -n वास्तविक कमांड चलाने से पहले उपयोग करें क्योंकि यह आपको दिखाएगा कि क्या फाइलें निकाली जाएंगी।

git clean -n -d 
git clean -f -d

डिफ़ॉल्ट रूप से, git cleanकेवल अनटैक की गई फ़ाइलों को हटा देगा जिन्हें अनदेखा नहीं किया गया है। आपके .gitignore या अन्य अनदेखा फ़ाइलों में एक पैटर्न से मेल खाने वाली कोई भी फ़ाइल नहीं निकाली जाएगी। यदि आप उन फ़ाइलों को भी हटाना चाहते हैं, तो आप -xस्वच्छ कमांड में जोड़ सकते हैं ।

git clean -f -d -x

-iक्लीन कमांड के साथ इंटरैक्टिव मोड भी उपलब्ध है

git clean -x -i

वैकल्पिक रूप से

यदि आप 100% सुनिश्चित नहीं हैं कि आपके अनकम्यूट किए गए कार्य को हटाना सुरक्षित है, तो आप इसके बजाय स्टैशिंग का उपयोग कर सकते हैं

git stash --all

यह भी अपने निर्देशिका स्पष्ट है, लेकिन आप का उपयोग कर समय में किसी भी बिंदु पर फ़ाइलों को पुनः प्राप्त करने के लिए लचीलापन दे देंगे गुप्त कोष के साथ लागू होते हैं या पॉप । फिर बाद में बिंदु पर आप अपने उपयोग को रोक सकते हैं:

git stash drop // or clean

2
यह एक अच्छा विचार है, हालाँकि आप उपयोग कर सकते हैंgit stash save and type some comment as to what this stash was for
लैकस्टेनोकोडर


9

के लिए uggested कमान Git डॉक्स से ट्रैक न किए गए फ़ाइलों को हटाने है Git साफ

git clean - काम करने वाले पेड़ से अनट्रैक की गई फ़ाइलों को हटा दें

सुझाया गया तरीका: इंटरएक्टिव मोड का उपयोग करके git clean -i हम इस पर नियंत्रण कर सकते हैं। शेष उपलब्ध विकल्प देखें।

उपलब्ध विकल्प:

git clean 
    -d -f -i -n -q -e -x -X (can use either)

स्पष्टीकरण:

1. -डॉ

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

2. -फ, --फोर्स

अगर Git कॉन्फ़िगरेशन वेरिएबल clean.requireForce को झूठा सेट नहीं किया जाता है, तो git क्लीन चलाने के लिए तब तक मना कर देगा जब तक कि -f, -n या -i नहीं दिया जाता।

3. -आई, - सक्रिय

दिखाएँ कि क्या किया जाएगा और अंतःक्रियात्मक रूप से फ़ाइलों को साफ़ करें। विवरण के लिए "इंटरएक्टिव मोड" देखें।

4.-एन, - डीरी-रन

वास्तव में कुछ भी न निकालें, बस दिखाएं कि क्या किया जाएगा।

5. -क्यू, --क्वेट

शांत रहें, केवल त्रुटियों की रिपोर्ट करें, लेकिन उन फ़ाइलों को नहीं जो सफलतापूर्वक हटा दी जाती हैं।

6. -ई, - एक्सक्लूड =

.Gitignore (प्रति निर्देशिका) और $ GIT_DIR / जानकारी / बहिष्कृत में पाए जाने वाले लोगों के अलावा, इन पैटर्नों को प्रभाव में अनदेखी नियमों के सेट में होना चाहिए।

7. -x

.Gitignore (प्रति निर्देशिका) और $ GIT_DIR / जानकारी / बहिष्कृत से पढ़े जाने वाले मानक उपेक्षा नियमों का उपयोग न करें, लेकिन अभी भी -e विकल्पों के साथ दिए गए उपेक्षा नियमों का उपयोग करें। यह बिल्ड उत्पादों सहित सभी अनट्रैक फ़ाइलों को हटाने की अनुमति देता है। यह एक साफ निर्माण का परीक्षण करने के लिए एक प्राचीन काम कर निर्देशिका बनाने के लिए (संभवतः गिट रीसेट के साथ संयोजन के रूप में) इस्तेमाल किया जा सकता है।

8. -X

जीआईटी द्वारा नजरअंदाज की गई फाइलें ही निकालें। यह सब कुछ खरोंच से पुनर्निर्माण करने के लिए उपयोगी हो सकता है, लेकिन मैन्युअल रूप से बनाई गई फ़ाइलों को रखें।


मैं तुम्हें एक टाइपो है लगता है uggestedलेकिन यह है कि सिर्फ एक "है uggestionlol
lacostenycoder

8

सामान्य git cleanआदेश मेरे साथ अनट्रैक की गई फ़ाइलों को नहीं हटाता है git version 2.9.0.windows.1

$ git clean -fdx     # doesn't remove untracked files
$ git clean -fdx *   # Append star then it works!

7

हम नीचे टिप्पणी टिप्पणियों का उपयोग करके आसानी से स्थानीय अनटैक की गई फ़ाइलों को वर्तमान git वर्किंग ट्री से हटा सकते हैं।

git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]

उदाहरण:

git reset --hard HEAD

लिंक:

  1. https://git-scm.com/docs/git-reset
  2. मैं पिछली प्रतिबद्धता को वापस करने के लिए 'git reset --hard HEAD' का उपयोग कैसे करूँ?
  3. दूरस्थ रिपॉजिटरी HEAD की तरह ही स्थानीय रिपोजिटरी शाखा को रीसेट करें
  4. https://jwiegley.github.io/git-from-the-bottom-up/3-Reset/4-doing-a-hard-reset.html

यह प्रतिबद्धताओं के लिए मंचित परिवर्तनों को भी हटा देगा, न कि केवल बिना पढ़ी हुई फाइलें, जो हो सकता है कि आप क्या चाहते हैं।
रासपीला

काम नहीं करता है: कुछ फ़ाइलों को छोड़ देता है। git clean -ffdxसमाधान है
यूजीन जीआर। फिलिपोव

7

गेट रिपॉजिटरी और सभी सबमॉड्यूल को पुन: साफ करें

निम्न आदेश मौजूदा गिट रिपॉजिटरी और उसके सभी सबमॉड्यूल को पुन: साफ करेगा।

(git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f)

निश्चित रूप से यह बहुत सावधानी के साथ इस्तेमाल किया जाना चाहिए
लैकोस्टेनोकोडर

6
git clean -f

मौजूदा git से अनट्रैक की गई फ़ाइलों को हटा देगा

git clean -fd

जब आप निर्देशिकाओं और फ़ाइलों को निकालना चाहते हैं, तो यह केवल अनुपयोगी निर्देशिका और फ़ाइलों को हटा देगा


5

ओह-मेरी-zsh साथ zsh Git प्लगइन के माध्यम से उन महान उपनाम प्रदान करता है। इन्हें बैश में भी इस्तेमाल किया जा सकता है।

gclean='git clean -fd'
gpristine='git reset --hard && git clean -dfx'

  • gclean हटाए गए फ़ाइलों के अलावा अनट्रैक निर्देशिकाओं को हटाता है
  • gpristineहार्ड परिवर्तन स्थानीय परिवर्तन को रीसेट करें, अनट्रैक की गई निर्देशिकाओं को हटाएं, अनट्रैक की गई फ़ाइलों को हटाएं। .ignignore (प्रति निर्देशिका) और $ GIT_DIR / info / बाहर से पढ़े जाने वाले मानक उपेक्षा नियमों का उपयोग न करें, लेकिन -e विकल्पों के साथ दिए गए अनदेखा नियमों का उपयोग अभी भी करें। यह बिल्ड उत्पादों सहित सभी अनट्रैक फ़ाइलों को हटाने की अनुमति देता है। एक साफ निर्माण का परीक्षण करने के लिए एक प्राचीन कार्यशील निर्देशिका बनाने के लिए इसका उपयोग किया जा सकता है (संभवतः गिट रीसेट के साथ संयोजन में)

2
आपकी प्रतिक्रिया के लिए धन्यवाद, मेरा बयान भ्रमित करने वाला था। मैं यह कहना चाहता था कि हाइलाइट किए गए उपनाम स्वचालित रूप से ओह-माय-ज़श के साथ आते हैं। वे स्पष्ट रूप से महान काम करते हैं bash। मैंने अपने उत्तर को संपादित करके दर्शाया है कि
ज़ेनुलज़

4

मुझे git stashकमांड का उपयोग करना पसंद है , बाद में आप स्टैक्ड फ़ाइलों और परिवर्तनों को प्राप्त कर सकते हैं। git cleanएक अच्छा विकल्प भी है लेकिन पूरी तरह से आपकी आवश्यकता पर निर्भर करता है। यहाँ git stash और git clean, 7.3 Git Tools - Stashing और Cleaning की व्याख्या है

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