Gitignore कमांड का उपयोग git में कैसे करें


119

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


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

मैं ubuntu पर हूँ। क्या आप कृपया रूट रूट डायरेक्टरी का रास्ता कह सकते हैं
user1559230

2
यह वह निर्देशिका है जहाँ आपने उपयोग किया था git init.gitनिर्देशिका वहाँ स्थित है।
लोनलीवेबक्रॉलर

2
उन लोगों के लिए जो gwignore का उपयोग नहीं करते हैं - gitignore.io पर जाएं आप उन सभी टूल को टाइप कर सकते हैं जिनका आप उपयोग कर रहे हैं (सिम्फनी, CakePHP, ZendFramework, wordpress, grunt, उदात्त पाठ, netbeans, और इसी तरह, आपको ड्रिल मिलती है) ...) और यह आपके लिए git उपेक्षा फ़ाइल उत्पन्न करेगा। अगर आपको पता नहीं है कि gitignore का उपयोग कैसे किया जाता है, तो मुझे लगता है कि इसे सीखने का सबसे अच्छा तरीका कुछ अच्छे उपयोग के मामले का उदाहरण देखना है (जैसे कि gitignore.io द्वारा जनरेट किया गया। यदि आप इसे cmd लाइन (geeky way) से उपयोग करना चाहते हैं। ) इस ट्यूटोरियल देखें: vimeo.com/70609819
DevWL

जवाबों:


162

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

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

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

आपके उत्तर के लिए धन्यवाद। इससे पहले कि मैं प्रतिबद्ध Git ऐड -एक चलाने के लिए किया था
user1559230

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


42

यदि आपके पास .gitignore फ़ाइल नहीं है, तो पहले उपयोग करें:

touch .gitignore

तब आपकी gitignore फ़ाइल में लाइनें जोड़ने का यह आदेश:

echo 'application/cache' >> .gitignore

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


touchपहले फ़ाइल की कोई आवश्यकता नहीं है । यदि फ़ाइल पहले से मौजूद नहीं है, तो उसका >>पर्यायवाची है >echoआउटपुट के अंत में एक नई पंक्ति जोड़ता है। आप इसे रोक सकते हैं -n। यदि आपको विभिन्न इग्नोर की आवश्यकता है, या तो -eनिम्नानुसार विभिन्न इकोस, या उपयोग करें echo -e "**/cache/\n**.pyc" >> .gitignore:। डबल तारांकन फ़ोल्डर्स में खोदने वाली सभी फ़ाइलों को पुनरावर्ती रूप से भी मेल खाता है। /केवल मामले में, फ़ोल्डर्स के अंत में उपयोग करें ।
माज़ुनकी

1
@Andrew tl; dr: प्रत्येक उपेक्षित फ़ाइल को echo "file_to_be_ignored" >> .gitignoreकिसी और चीज़ के साथ जोड़ने की आवश्यकता नहीं है। साथ फ़ोल्डर नाम समाप्ति /के रूप में echo "**/modules/" >> .gitignore
mazunki

मेरी टिप्पणी को क्यों हटा दिया गया
एंड्रयू

12

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

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

*.log !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 आपके इतिहास को ई के साथ चिह्नित प्रत्येक कमेटी पर रोक देगा। यहां आप उन फ़ाइलों को हटा देते हैं जिन्हें आप नहीं चाहते हैं, git add -Aऔर तब git rebase --continueतक जब तक आप नहीं होते हैं। आपका इतिहास स्वच्छ होगा। सुनिश्चित करें कि आप सहकर्मियों को बताएंगे कि आपको धक्का देने के लिए मजबूर करना पड़ेगा और उन्हें फिर से वही करना पड़ेगा जो उन्होंने अभी तक नहीं किया था।


8

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

*~

यदि आप अपनी शाखा से अवांछित फ़ाइलों को निकालना चाहते हैं, तो आप उपयोग कर सकते हैं git add -A, जो "उन फ़ाइलों को हटा देता है जो अब काम के पेड़ में नहीं हैं "।

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


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

4

यदि आपके पास .gitignore फ़ाइल नहीं है। आप एक नया बना सकते हैं

touch .gitignore

और आप .गितिग्नोर फ़ाइल में नीचे कमांड दर्ज करके एक फ़ोल्डर को बाहर कर सकते हैं

/folderName

इस फाइल को अपने git रिपॉजिटरी में धकेलें ताकि जब कोई नया व्यक्ति आपके प्रोजेक्ट को क्लोन करे तो उसे फिर से जोड़ना न पड़े


2

Gitignore git का उपयोग करने के कई तरीके हैं

  • विशिष्ट फ़ाइल नाम द्वारा निर्दिष्ट करना। उदाहरण के लिए,
    readme.txt नामक फ़ाइल को अनदेखा करने के लिए, केवल .meignore फ़ाइल में readme.txt लिखना होगा।
  • आप फ़ाइल एक्सटेंशन का नाम भी लिख सकते हैं। उदाहरण के लिए,
    सभी .txt फ़ाइलों को अनदेखा करने के लिए, * .txt लिखें।
  • आप एक संपूर्ण फ़ोल्डर को अनदेखा भी कर सकते हैं। उदाहरण के लिए आप
    परीक्षण नाम के फ़ोल्डर को अनदेखा करना चाहते हैं । फिर फ़ाइल में परीक्षण / लिखें।

बस एक .itignore फ़ाइल बनाएँ और जो कुछ भी आप नमूना gitignore फ़ाइल को अनदेखा करना चाहते हैं उसमें लिखें:

# NPM packages folder.
node_modules

# Build files
dist/

# lock files
yarn.lock
package-lock.json

# Logs
logs
*.log
npm-debug.log*

# node-waf configuration
.lock-wscript

# Optional npm cache directory
.npm

# Optional REPL history
.node_repl_history

# Jest Coverage
coverage

.history/

आप git प्रलेखन gitignore पर अधिक पा सकते हैं


1

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

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

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

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

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