गिट: जोड़ने बनाम धक्का बनाम प्रतिबद्ध


115

गिट और add, के बीच अंतर क्या है ?pushcommit

एसवीएन से आने वाली बस थोड़ी उलझन में है, जहां "अपडेट" सामान को जोड़ देगा, और प्रतिबद्ध "पुश" करेगा और साथ ही 'आगे' करेगा।

गिट के भीतर सभी अलग-अलग कार्य हैं। अपने अनुभव से कुछ स्पष्टीकरण की उम्मीद है।


जवाबों:


163
  1. git addबाद में होने वाली कतार में अपनी संशोधित फ़ाइलों को जोड़ता है । फाइलें प्रतिबद्ध नहीं हैं

  2. git commitजो फाइलें जोड़ी गई हैं उन्हें लॉग करता है और लॉग के साथ एक नया संशोधन बनाता है ... यदि आप कोई फाइल नहीं जोड़ते हैं, तो गिट कुछ भी नहीं करेगा। आप दोनों क्रियाओं को एक साथ जोड़ सकते हैंgit commit -a

  3. git push दूरस्थ रिपॉजिटरी में आपके परिवर्तनों को धक्का देता है।

इस गिट चीट शीट से यह आंकड़ा काम के प्रवाह का एक अच्छा विचार देता है

यहां छवि विवरण दर्ज करें

git addआंकड़े पर नहीं है क्योंकि प्रतिबद्ध करने का सुझाव दिया तरीका संयुक्त है git commit -a, लेकिन आप git addप्रवाह को समझने के लिए मानसिक रूप से परिवर्तन ब्लॉक में जोड़ सकते हैं ।

अन्त में, pushएक अलग कमान का कारण gitदर्शन के कारण है। gitएक वितरित वर्ज़निंग प्रणाली है, और अपने स्थानीय कार्यशील निर्देशिका है अपने भंडार! आपके द्वारा किए गए सभी परिवर्तन तुरंत प्रतिबिंबित और रिकॉर्ड किए जाते हैं। pushइसका उपयोग केवल दूरस्थ रेपो (जिसे आप दूसरों के साथ साझा कर सकते हैं) को अपडेट करने के लिए किया जाता है, जब आप जो कुछ भी करते हैं उसके साथ काम करते हैं। यह स्थानीय स्तर पर (नेटवर्क ओवरहेड के बिना) काम करने और सहेजने और इसे तब ही अपडेट करने का एक अच्छा तरीका है, जब आप हर कमिट के बजाय इसे चाहते हैं। इससे अप्रत्यक्ष रूप से आसान काम / ब्रांचिंग आदि हो जाता है (क्यों नहीं, सही है? इससे आपको क्या फायदा होता है?) जो रिपॉजिटरी के साथ खिलवाड़ किए बिना अधिक बचत बिंदुओं की ओर ले जाता है।


तो क्या स्थानीय स्तर पर पुश कमिटमेंट होता है और फिर रिमोट सर्वर पर पुश होता है या किसी को पहले कमिट करना पड़ता है और रिमोट रिपॉजिटरी में काम करने के लिए पुश करना पड़ता है?
एंड्रयू एस

2
आपको पहले ("गिट कमिट") करना है जो आपके स्थानीय रिपॉजिटरी (आपके स्थानीय मशीन पर उर्फ) को अपडेट करते हैं, फिर आपको सर्वर ("गिट पुश") पर धक्का देना होगा जो रिमोट रिपॉजिटरी (जैसे जीथब सर्वर पर) को अपडेट करते हैं। )
रोमेन

मैं Git में "मानसिक रूप से जोड़ना" फ़ंक्शन पसंद करूंगा!
जुन्चेन लियू

1
यह न केवल अक्सर करने के लिए, बल्कि अक्सर धक्का देने के लिए भी सलाह दी जाती है। जब आपका हार्ड ड्राइव क्रैश हो जाता है तो यह आपके काम की सुरक्षा करता है।
CCC

86

git add परिवर्तनों का चयन करता है

git commit रिकॉर्ड्स LOCALLY में बदलाव करते हैं

git push शेयर बदलता है


22
  • git add जीआईटी इंडेक्स में फाइलें जोड़ता है, जो कमिट होने के लिए तैयार वस्तुओं के लिए एक मंचन क्षेत्र है।
  • git commitअनुक्रमणिका में फ़ाइलों को कमिट करता है, git commit -aसभी संशोधित ट्रैक की गई फ़ाइलों को पहले सूचकांक में जोड़ने का एक शॉर्टकट है।
  • git push दूरस्थ रिपॉजिटरी में सभी लंबित परिवर्तनों को भेजता है जिससे आपकी शाखा मैप की जाती है (जैसे GitHub पर)।

Git को समझने के लिए आपको दस्तावेज़ीकरण पर नज़र रखने की तुलना में अधिक प्रयास करने की आवश्यकता होगी, लेकिन यह निश्चित रूप से इसके लायक है। बस Git कमांड को सीधे Subversion पर मैप करने का प्रयास न करें, क्योंकि उनमें से अधिकांश में एक सीधा समकक्ष नहीं है।


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

12

मैं इस बारे में उलझन में था कि 'ऐड' वास्तव में क्या करता है। मैं सिर्फ Git Pro पुस्तक से एक बहुत ही ज्ञानवर्धक पैराग्राफ पढ़ता हूँ जिसे मैं यहाँ जोड़ना चाहता हूँ, क्योंकि यह चीजों को स्पष्ट करता है

“यह पता चला है कि गिट फाइल को ठीक उसी तरह से चरणबद्ध करता है जैसे आप गिट ऐड कमांड चलाते हैं। यदि आप अभी प्रतिबद्ध हैं, तो बेंचमार्कs.rb का संस्करण जैसा कि आपने पिछली बार गिट ऐड कमांड को चलाया था, यह कैसे कमिट में जाएगा, फाइल का संस्करण जैसा कि यह आपके वर्किंग डायरेक्टरी में दिखता है जब आप जीआईटी कमिट चलाते हैं। यदि आप git ऐड चलाने के बाद किसी फ़ाइल को संशोधित करते हैं, तो आपको फ़ाइल के नवीनतम संस्करण को स्टेज करने के लिए फिर से git ऐड रन करना होगा: "

अंश: स्कॉट, स्कॉट। "प्रो गिट।" स्प्रिंगर, 2009-08-19T00: 00: 00 + 00: 00। iBooks। इस सामग्री को कॉपीराइट द्वारा संरक्षित किया जा सकता है।


7

Add बताता है कि git किसी फ़ाइल को ट्रैक करना शुरू करता है।

प्रतिबद्ध आपके स्थानीय रिपॉजिटरी पर आपके वर्तमान परिवर्तनों को करता है

धक्का आपको स्थानीय रेपो अपस्ट्रीम धक्का देता है।



5

कई जीआईटी रहस्यों के बारे में बहुत अच्छा पीडीएफ

Add svn के ऐड के समान है (कभी-कभी इसका उपयोग फ़ाइल को हल करने के लिए कैसे किया जाता है)।

प्रतिबद्ध भी svn's के समान है, लेकिन यह आपके स्थानीय भंडार में परिवर्तन करता है।


2
अब मुझे svn ऐड और कमिटमेंट देखने जाना है। मेरा बड़ा डर: उनके डॉक्स फिर मुझे जोड़ने और प्रतिबद्ध करने के लिए संदर्भित करेंगे। और lord_t उक्त डॉक्स के लेखक हैं।
एरिक

प्रश्न लेखक को एसवीएन का ज्ञान था, इसलिए मैंने मान लिया कि वह svn के आदेशों को जानता है।
lord_t

0

add -in git का उपयोग git को बताने के लिए किया जाता है कि हम कौन सी फाइल को कमिट करना चाहते हैं, यह फाइल को स्टेजिंग एरिया में रखती है

प्रतिबद्ध- git में स्थानीय मशीन पर फ़ाइलों को सहेजने के लिए उपयोग किया जाता है ताकि यदि हम कोई बदलाव करें या उन फ़ाइलों को भी हटा दें जिन्हें हम अभी भी अपनी संबंधित फ़ाइलों को सहेज सकते हैं

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

उदाहरण index.html git add index.html नामक फाइल को जमा करना

ऐसी फाइल करना, जो आपके कमिट का 'git कमिट' नाम हो।

एक फ़ाइल को Github git पुश ओरिजिन मास्टर में पुश करना

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