2012-09-19 5 views
73

में gitignore कमांड का उपयोग कैसे करें मैं पहली बार गिट पर काम कर रहा हूं। मैंने अपनी शाखा को जिथब पर धक्का दिया है और उसने सभी पुस्तकालयों और दस्तावेजों को जिथब में धक्का दिया है। अब मैं वही गलती से बचने के लिए क्या कर सकता हूं और गिटिनोरोर कमांड का उपयोग कैसे कर सकता हूं।गिट

+1

'.gitignore' आपकी गिट रूट निर्देशिका में एक फ़ाइल है। उन फ़ाइलों के लिए नाम पैटर्न जोड़ें जिन्हें आप अनदेखा करना चाहते हैं, और फ़ाइलों को स्वचालित रूप से अनदेखा कर दिया जाएगा। – LonelyWebCrawler

+0

मैं उबंटू पर हूं। क्या आप कृपया गिट रूट निर्देशिका का पथ कह सकते हैं – user1559230

+2

यह वह निर्देशिका है जहां आपने 'गिट इनिट' का उपयोग किया था। '.git' निर्देशिका वहां स्थित है। – LonelyWebCrawler

उत्तर

101

तो आपने जो कहा है उसके आधार पर, ये फ़ाइलें लाइब्रेरी/दस्तावेज हैं जिन्हें आप हटाना नहीं चाहते हैं, लेकिन github पर भी धक्का नहीं देना चाहते हैं। मान लें कि आपके पास प्रोजेक्ट your_project और एक दस्तावेज़ निर्देशिका में है: your_project/doc

  1. परियोजना निर्देशिका से निकालें (वास्तव में यह हटाए बिना): git rm --cached doc/*
  2. आप पहले से ही एक .gitignore की जरूरत नहीं है, तो आप सही अपनी परियोजना फ़ोल्डर के अंदर एक बना सकते हैं: project/.gitignore
  3. .gitignore
  4. स्टेज में फ़ाइल doc/* रखो प्रतिबद्ध करने के लिए: git add project/.gitignore
  5. प्रतिबद्ध: git commit -m "message"
  6. github पर अपना परिवर्तन पुश करें।
+0

क्या आप कृपया मुझे बता सकते हैं कि .gitignore फ़ाइल कैसे लिखनी है यानी, पथ कैसे लिखना है फ़ोल्डरों और फ़ाइलों के जिन्हें मैं .gitignore फ़ाइल के अंदर अनदेखा करना चाहता हूं। धन्यवाद – user1559230

+0

आपके उत्तर के लिए धन्यवाद। प्रतिबद्ध करने से पहले मुझे गिट एड-ए – user1559230

+4

चलाएं हाय, गिटिग्नोर सिर्फ एक सादा पाठ फ़ाइल है। यह वास्तव में है .gitignore (DOTgitignore)। बस फ़ाइल/फ़ाइल प्रकारों का नाम दें जिसे आप गिट को अनदेखा करना चाहते हैं, प्रति पंक्ति एक। उदाहरण: http://www.sujee.net/tech/articles/gitignore/ – qusr

7

.gitignore नामक आपकी गिट रूट निर्देशिका में एक फ़ाइल है। यह एक फाइल है, कमांड नहीं। आपको केवल उन फ़ाइलों के नाम डालने की आवश्यकता है जिन्हें आप अनदेखा करना चाहते हैं, और उन्हें स्वचालित रूप से अनदेखा कर दिया जाएगा। उदाहरण के लिए, यदि आप सभी Emacs स्वतः सहेजना फ़ाइलें, जो ~ में खत्म हो उपेक्षा करना चाहता था, तो आप इस लाइन जोड़ सकते हैं:

*~ 

आप अपनी शाखा से अवांछित फ़ाइलें निकालना चाहते हैं, तो आप git add -A उपयोग कर सकते हैं, जो "removes files that are no longer in the working tree"।

नोट: जिसे मैंने "गिट रूट निर्देशिका" कहा है, वह केवल वह निर्देशिका है जिसमें आपने पहली बार git init का उपयोग किया था। यह भी है जहां आप .git निर्देशिका पा सकते हैं।

+0

पहले से धक्का वाली फ़ाइलों के साथ क्या होगा जो मैं नहीं चाहता – user1559230

7

गिट अनदेखा गिट में एक सम्मेलन है। .gitignore के नाम से फ़ाइल सेट करना उस निर्देशिका और गहरी निर्देशिकाओं की फ़ाइलों को अनदेखा करेगा जो फ़ाइल में पैटर्न से मेल खाते हैं। सबसे आम उपयोग सिर्फ एक फ़ाइल शीर्ष स्तर पर इस तरह है। लेकिन आप अपनी निर्देशिका में संरचना को और भी अधिक पैटर्न को अनदेखा करने या उस निर्देशिका के लिए उन्हें अनदेखा करना बंद कर सकते हैं और बाद में गहरे वाले।

इसी तरह, आप "अनदेखा न करें" एक गहरी संरचना में कुछ फ़ाइलों या एक विशिष्ट सबसेट (यानी, आप * .log उपेक्षा लेकिन अभी भी important.log ट्रैक करना चाहते हैं) को निर्दिष्ट ! के साथ शुरुआत पैटर्न से कर सकते हैं। उदाहरण के लिए:

*.log !important.log 

सभी लॉग फाइल पर ध्यान नहीं देगा, लेकिन आप फ़ाइलों पर ध्यान नहीं देना, उन्हें हटा दें, के पैटर्न जोड़ने आप फ़ाइल .gitignore और जोड़ने का मतलब है पर नज़र रखने रहे हैं, तो important.log

नामित फ़ाइलों को ट्रैक करेगा सभी परिवर्तन

# delete files that should be ignored, or untrack them with 
# git rm --cached <file list or pattern> 

# stage all the changes git commit 
git add -A 

अब से आपके भंडार पर उन्हें ट्रैक नहीं किया जाएगा।

आप अपने इतिहास को साफ करने के लिए चाहते हैं, तो आप

# if you want to correct the last 10 commits 
git rebase -i --preserve-merges HEAD~10 

तो चिह्नित कर सकते हैं प्रत्येक e या edit साथ करते हैं। योजना बचाओ। अब गिट आपके इतिहास को ई के साथ चिह्नित प्रत्येक प्रतिबद्धता पर रोक देगा। यहां आप फ़ाइलों को हटाएं जिन्हें आप नहीं चाहते हैं, git add -A और फिर git rebase --continue जब तक कि आप नहीं कर लेते हैं। आपका इतिहास साफ हो जाएगा। सुनिश्चित करें कि आप सहकर्मी बताते हैं कि को पुश को मजबूर करना होगा और उन्हें फिर से धक्का देना होगा जो उन्होंने अभी तक नहीं दबाया है।

0

मेरे मैक पर मुझे यह फ़ाइल मिली .gitignore_global ..it मेरी होम निर्देशिका में छिपा हुआ था इसलिए इसे देखने के लिए ls -altr करें।

मैंने ग्रहण फाइलों को जोड़ा जो मैं अनदेखा करने के लिए गिट चाहता था।

*~ 
.DS_Store 
.project 
.settings 
.classpath 
.metadata 
+0

जब मैंने अपने प्रोजेक्ट फ़ोल्डर में .gitignore फ़ाइल डाली तो यह स्थानीय रूप से मेरी ग्रहण परियोजना को गड़बड़ कर दिया । क्या आप जानते हैं कि ऐसा क्यों हो सकता है और इसे कैसे रोकें ?? अभी के लिए मैं बस से दूर रह रहा हूँ .gitignore। – JesseBoyd

+0

मैं अब ग्रहण का उपयोग नहीं करता हूं। इंटीलजी अब – j2emanue

12

आप न एक .gitignore फ़ाइल है, तो पहली बार उपयोग:

touch .gitignore 

तो इस आदेश को अपने gitignore फ़ाइल की पंक्तियों को जोड़ने के लिए:

echo 'application/cache' >> .gitignore 
सामग्री इस तरह दिखता है

नई लाइनों के बारे में सावधान रहें