जोड़ देना। बनाम गिट कमिट-ए


105

के बीच क्या अंतर है:

  • git add .
  • git commit -a

क्या मुझे दोनों करना चाहिए, या वह बेमानी है?


2
यह भी देखें (सटीक डुप्लिकेट नहीं, हालांकि): stackoverflow.com/questions/572549/…
CB बेली

जवाबों:


139

git commit -aइसका मतलब लगभग [*] जैसा है git add -u && git commit

यह वैसा ही नहीं है git add .क्योंकि इससे अनट्रैक की गई फ़ाइलों को जोड़ा जाएगा, जिन्हें अनदेखा नहीं किया जा रहा है, git add -uकेवल पहले से ही ट्रैक की गई फ़ाइलों में परिवर्तन (विलोपन सहित) बदल जाते हैं।

[*] यदि आपकी रिपॉजिटरी की रूट डायरेक्टरी में नहीं हैं तो एक सूक्ष्म अंतर है। git add -uवर्तमान निर्देशिका में और नीचे फ़ाइलों के चरणों को अद्यतन करता है, git add -u .जबकि यह git commit -aचरणों के बराबर है और सभी ट्रैक की गई फ़ाइलों में परिवर्तन करता है ।


3
स्थिरता के लिए [*] में व्यवहार जीआईटी 2.0 में बदल जाएगा।
user1284631

2
किस दिशा में? यानी कमिट-ए जैसा ऐड -यू बन जाएगा, या ऐड -यू कमिट-ए जैसा हो जाएगा?
माइल्स राउत

5
@ माइल्सआउट: git add -uजैसा बनेगा git commit -a; आपको स्पष्ट रूप से यह कहने की आवश्यकता होगी git add -u .कि क्या आपका मतलब है।
सीबी बेली

Git v 2.0 के बाद से यह बिल्कुल वैसा ही है जहां git add .एक अलग तरीके से व्यवहार किया जाता है।
निक वोल्किन

13

git commit -aस्वचालित रूप git addसे सभी फ़ाइलों पर इसके बारे में जानता है। आप git addफ़ाइलों का चयन करने के लिए उपयोग कर सकते हैं । अधिक जानकारी के लिए डॉक्स से परामर्श करें: यहां


11
सभी फाइलों के बारे में यह मेरे लिए बहुत अस्पष्ट है, खासकर जब से उन लोगों को नहीं जोड़ा गया था
निकाना रेक्लाविक्स

1
@alternative, फिर भी यह उत्तर बेहतर हो सकता है यदि आप "सभी फ़ाइलों के बारे में जानते हैं" के लिए एक स्पष्टीकरण जोड़ते हैं .....
Pacerier

2
@ स्पेसर के बराबर git add -u
वैकल्पिक

2
@ Z.Khullah, इसलिए "सभी (...)" का अर्थ है "ट्रैक की गई फाइलें"?
TheFrost

1
@ TheFrost ठीक है!
जेड। खुल्ला

1

Git कमिट-ए स्विच का उपयोग करके कमिट कमांड के साथ सभी ज्ञात फाइलों से परिवर्तन को स्वचालित रूप से "जोड़ें" (यानी सभी फाइलें जो पहले से ही सूचकांक में सूचीबद्ध हैं)

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