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



Answers

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

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

Question

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




नोट: पहले निर्देशिका में नेविगेट करें और उस शाखा को चेकआउट करें जिसे आप साफ़ करना चाहते हैं।

-i इंटरैक्टिव मोड और यह आपको बताएगा कि क्या हटाया जाएगा और आप सूची से कोई क्रिया चुन सकते हैं।

  1. केवल फाइलों को साफ करने के लिए [फ़ोल्डर सूचीबद्ध नहीं होंगे और साफ़ नहीं किए जाएंगे]: $ git clean -i

  2. फ़ाइलों और फ़ोल्डरों को साफ करने के लिए: $ git clean -d -i

निर्देशिका सहित।

यदि आप सूची से c चुनते हैं। फ़ाइलों / फ़ोल्डरों को हटा दिया जाएगा जिन्हें ट्रैक नहीं किया गया है और आपके द्वारा गड़बड़ की गई फ़ाइलों / फ़ोल्डरों को भी हटा दिया जाएगा। *

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




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

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

git add --all
git reset --hard HEAD



सामान्य 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 clean -d -n

यह कुछ ऐसा आउटपुट करेगा:

Sample.txt हटा देंगे

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

git clean -d -f

यह कुछ ऐसा आउटपुट करेगा:

Sample.txt को हटा रहा है




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

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

सुझाया गया तरीका: 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. -एक्स

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




यदि आप zsh bash के साथ oh-my-zsh का उपयोग कर रहे हैं, तो आप उन महान उपनामों का उपयोग कर सकते हैं:

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

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



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 -f {dir_path}

और अनचाहे dir / फ़ाइलों को हटाने और फ़ाइलों को अनदेखा करने के लिए संयुक्त तरीका।

git clean -fxd {dir_path}

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




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

git clean -fdx

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




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

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







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

वास्तविक कमांड चलाने से पहले हमेशा -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 -d -x -f

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

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




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

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

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




Links