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




बीज से पौधा बनने की प्रक्रिया (20)

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

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

git add --all
git reset --hard HEAD

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


गिट भंडार और सभी submodules दोबारा साफ करें

निम्न आदेश वर्तमान गिट भंडार और इसके सभी सबमिड्यूल को दोबारा साफ कर देगा:

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

'गिट क्लीन' कमांड चलाने के दौरान सावधान रहें।

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

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

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

git clean -f -d -x

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

git clean -x -i

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

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

git stash --all

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

git stash drop // or clean

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

git clean -fdn

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

git clean -fd

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

git add .
git reset --hard HEAD

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


गिट डॉक्स से अनचाहे फ़ाइलों को हटाने के लिए अनुशंसित कमांड गिट साफ़ है

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

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

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

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

स्पष्टीकरण:

1.- डी

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

2. -एफ, - बल

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

3. -i, - इंटरैक्टिव

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

4. -एन, - ड्राय रन

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

5. -q, --quiet

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

6. -e, - exclude =

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

7. -x

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

8. -एक्स

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


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

संपादित करें: इसके अलावा मुझे एक छेड़छाड़ में अनचाहे फ़ाइल दिखाने का एक तरीका मिला (उदाहरण के लिए git show [email protected]{0}^3 ) https://.com/a/12681856/338986

EDIT2: पुट के पक्ष में git stash save को हटा दिया गया है। धन्यवाद @ लिपि-भेड़िया।


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

git clean -i

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

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

git iclean

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


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

git clean -d -f -f


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

git stash save -u
git stash drop "[email protected]{0}"

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


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

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


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

git clean -fdx

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


सामान्य git clean कमांड मेरे git version 2.9.0.windows.1 साथ git version 2.9.0.windows.1 फ़ाइलों को नहीं git version 2.9.0.windows.1

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

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

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

उदाहरण:

git reset --hard HEAD

लिंक:

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

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


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

सुनिश्चित करें कि flags -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 जांचें।


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

git clean -fX अनदेखा फाइलों को हटा देता है

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

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

git clean -fdXx

अधिक सहायता के लिए गिट मैनुअल की जांच करें


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

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

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

नोट: यह देखने के लिए कि यह क्या करेगा, केवल -n या --dry-run


इस रेपो + submodules में सभी अतिरिक्त फ़ोल्डरों और फ़ाइलों को हटा दें

यह आपको ताजा क्लोन के रूप में एक ही राज्य में ले जाता है।

git clean -ffdx

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

git clean -fdx

केवल अतिरिक्त फ़ोल्डर्स निकालें लेकिन फाइल नहीं (उदा। फ़ोल्डर बनाएं)

git clean -fd

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

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

git clean -fdX

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

git clean

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

git clean -fd

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

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

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

git clean -f

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

git clean -fd

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

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

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

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

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









git-branch