git commitआपके द्वारा किए जा रहे Git ट्यूटोरियल में, आपके द्वारा किए गए परिवर्तनों को संग्रहीत करने के लिए उपयोग किया जाता है।
git pushतब के लिए क्या उपयोग किया जाता है?
git commitआपके द्वारा किए जा रहे Git ट्यूटोरियल में, आपके द्वारा किए गए परिवर्तनों को संग्रहीत करने के लिए उपयोग किया जाता है।
git pushतब के लिए क्या उपयोग किया जाता है?
जवाबों:
मूल रूप से git commit" संबंधित वस्तुओं के साथ दूरस्थ रेफरी को अद्यतन करता है " जबकि git push" भंडार में परिवर्तन रिकॉर्ड करता है "। तो पहले वाले का उपयोग आपके स्थानीय भंडार के संबंध में किया जाता है, जबकि बाद वाले का उपयोग दूरदराज के भंडार के साथ बातचीत करने के लिए किया जाता है।
यहाँ ओलिवर स्टील की एक अच्छी तस्वीर है , जो गिट मॉडल और आदेशों की व्याख्या करती है:

बारे में अधिक पढ़ें git pushऔर git pullपर GitReady.com (लेख मैं पहली बार कहा गया है)
git pushसाथ काम करने के लिए एक समाधान है । वास्तव में, गंतव्य किसी भी प्रकार का भंडार git pushहो सकता है। यह आपके स्वयं के स्थानीय हार्ड ड्राइव पर किसी अन्य निर्देशिका ( या , उदाहरण के लिए), या गिट रिपॉजिटरी में हो सकता है जो आपके स्वयं के होस्ट की सेवा करता है। git remote add clone ~/proj/clone.git; git push clone mastergit push ~/proj/clone.git master
खैर, मूल रूप से गिट कमिट आपके परिवर्तनों को आपके स्थानीय रेपो में डाल देता है, जबकि गिट पुश आपके परिवर्तनों को दूरस्थ स्थान पर भेजता है।
git pushवास्तविक अद्यतित फ़ाइलें या कुछ विशेष "भिन्न" फ़ाइल अपलोड करता है ?
git pushइसका उपयोग स्थानीय रिपॉजिटरी पर आपके द्वारा किए गए कमिट्स को रिमोट से जोड़ने के लिए किया जाता है - साथ में git pull, यह लोगों को सहयोग करने की अनुमति देता है।
चूँकि git एक वितरित संस्करण नियंत्रण प्रणाली है, इसलिए अंतर यह है कि प्रतिबद्ध आपके स्थानीय रिपॉजिटरी में बदलाव करेगा, जबकि पुश रिमोट रेपो में बदलाव को आगे बढ़ाएगा।
कमिट : स्नैपशॉट | बदलाव | History_record | संस्करण | -सेव- अस ’ रिपॉजिटरी का। परिहास का भंडार = श्रृंखला (वृक्ष) का काम करता है ।
स्थानीय भंडार: आपके कंप्यूटर पर भंडार।
रिमोट रिपॉजिटरी: एक सर्वर ( जीथूब ) पर रिपॉजिटरी ।
git commit: स्थानीय रिपॉजिटरी में एक नई प्रतिबद्धता (अंतिम प्रतिबद्ध + मंचन संशोधनों) को लागू करें । (सभी आवागमन संग्रहीत हैं )/.git
git push, git pullसिंक स्थानीय उसके संबंधित के साथ भंडार दूरस्थ भंडार। push- से परिवर्तनों को लागू स्थानीय में दूरस्थ , pull- से परिवर्तनों को लागू दूरदराज में स्थानीय ।
git commitस्थानीय रिपॉजिटरी में अपने परिवर्तन रिकॉर्ड करें ।
git push अपने स्थानीय परिवर्तनों के साथ दूरस्थ रिपॉजिटरी को अपडेट करें ।
तीन बातों पर ध्यान दें:
1) वर्किंग डायरेक्टरी ----- फोल्डर जहां हमारी कोड फाइल मौजूद है
2) स्थानीय रिपोजिटरी ------ यह हमारे सिस्टम के अंदर है। जब हम पहली बार COMMIT कमांड बनाते हैं तो यह लोकल रिपोजिटरी बनाई जाती है। उसी जगह पर जहां हमारी वर्किंग डायरेक्टरी है,
चेकिट (.गित) फाइल बन जाती है।
उसके बाद जब कभी हम प्रतिबद्ध होते हैं, तो यह हमारे द्वारा कार्यशील निर्देशिका की फ़ाइल में किए गए परिवर्तनों को स्थानीय रिपोजिटरी (निति) को संग्रहीत करेगा।
3) रिमोट रिपॉजिटरी ----- यह हमारे सिस्टम के बाहर स्थित है जैसे सर्वर दुनिया के किसी भी स्थान पर स्थित है। जीथुब की तरह। जब हम PUSH कमांड बनाते हैं तो हमारे स्थानीय रिपॉजिटरी के कोड इस रिमोट रिपॉजिटरी में स्टोर हो जाते हैं
बस निम्नलिखित बिंदुओं को जोड़ना चाहते हैं:
योन तब तक धक्का नहीं दे सकता जब तक आप प्रतिबद्ध नहीं होते हैं जब तक हम git pushआपके स्थानीय शाखा पर किए गए कमिट को एक दूरस्थ रिपॉजिटरी में धकेलने के लिए उपयोग करते हैं।
git pushआदेश दो तर्क लेता है:
एक दूरस्थ नाम, उदाहरण के लिए, origin
एक शाखा का नाम, उदाहरण के लिए,master
उदाहरण के लिए:
git push <REMOTENAME> <BRANCHNAME>
git push origin master
एक बहुत ही कच्चा सादृश्य: यदि हम git commitएक संपादित फ़ाइल को सहेजने की तुलना करते हैं, तो git pushवह फ़ाइल को किसी अन्य स्थान पर कॉपी कर देगा।
कृपया इस संदर्भ से इस सादृश्य को न लें - कमिट करना और धकेलना किसी संपादित फ़ाइल को सहेजना और उसकी प्रतिलिपि बनाना पसंद नहीं है। यह कहा, यह तुलना के लिए पकड़ चाहिए।
गिट कमांड के उपयोग को समझना आसान है addऔर commitयदि आप एक लॉग फ़ाइल को गितुब पर अपने भंडार में बनाए रखने की कल्पना करते हैं। मेरे लिए एक विशिष्ट परियोजना की लॉग फ़ाइल इस तरह दिख सकती है:
---------------- Day 1 --------------------
Message: Completed Task A
Index of files changed: File1, File2
Message: Completed Task B
Index of files changed: File2, File3
-------------------------------------------
---------------- Day 2 --------------------
Message: Corrected typos
Index of files changed: File3, File1
-------------------------------------------
...
...
...and so on
मैं आमतौर पर एक git pullअनुरोध के साथ अपना दिन शुरू करता हूं और इसे एक git pushअनुरोध के साथ समाप्त करता हूं । इसलिए एक दिन के रिकॉर्ड के अंदर सब कुछ उन दोनों के बीच होता है। प्रत्येक दिन के दौरान, एक या एक से अधिक तार्किक कार्य होते हैं जिन्हें मैं पूरा करता हूं जिन्हें कुछ फ़ाइलों को बदलने की आवश्यकता होती है। उस कार्य के दौरान संपादित की गई फ़ाइलें एक सूचकांक में सूचीबद्ध होती हैं।
इनमें से प्रत्येक उप कार्य (टास्क ए और टास्क बी यहां) व्यक्तिगत रूप से किए गए हैं। git addआदेश 'फ़ाइलें सूचकांक बदल गया' सूची में फ़ाइलों को कहते हैं। इस प्रक्रिया को स्टेजिंग भी कहा जाता है और वास्तव में रिकॉर्ड्स ने फाइलों को बदल दिया और परिवर्तन किए गए। git commitआदेश रिकार्ड / परिवर्तन और जो बाद में संदर्भ के लिए इस्तेमाल किया जा सकता है एक संदेश के साथ साथ इसी सूचकांक सूची अंतिम रूप।
याद रखें कि आप अभी भी केवल अपनी रिपॉजिटरी की स्थानीय प्रति बदल रहे हैं, न कि गितुब पर। इसके बाद, केवल जब आप git pushइन सभी रिकॉर्ड किए गए परिवर्तनों को करते हैं, तो प्रत्येक प्रतिबद्ध के लिए आपकी अनुक्रमणिका फ़ाइलों के साथ, मुख्य रिपॉजिटरी (जीथब पर) पर लॉग इन करें।
एक उदाहरण के रूप में, उस काल्पनिक लॉग फ़ाइल में दूसरी प्रविष्टि प्राप्त करने के लिए, मैंने किया होगा:
git pull
# Make changes to File3 and File4
git add File3 File4
# Verify changes, run tests etc..
git commit -m 'Corrected typos'
git push
संक्षेप में, git addऔर git commitआप व्यवस्थित तार्किक उप-परिवर्तनों में मुख्य रिपॉजिटरी में एक बदलाव को समाप्त कर सकते हैं। जैसा कि अन्य उत्तरों और टिप्पणियों ने बताया है, उनके लिए कई और उपयोग हैं। हालांकि, यह सबसे आम उपयोगों में से एक है और एसआईवी जैसे अन्य लोकप्रिय लोगों के विपरीत जीआईटी एक बहु-चरण संशोधन नियंत्रण प्रणाली होने के पीछे एक ड्राइविंग सिद्धांत है।
git कमिट कुछ भी नहीं है, लेकिन आधिकारिक तौर पर हमारे बदलावों को सहेजने के लिए, हर कमिट के लिए हम कमिट मेसेज देते हैं, एक बार जब हम कमिट्स के साथ हो जाते हैं, तो हम इसे विश्व स्तर पर हमारे बदलाव को देखने के लिए रिमोट पर धकेल सकते हैं
जिसका अर्थ है कि हम रिमोट पर धकेलने से पहले कई कमिट कर सकते हैं (हम किए गए कमिट की सूची देख सकते हैं और मैसेज भी) git प्रत्येक कमिट को id आईडी से बचाता है जो कि 40 अंकों का कोड है
और मैं git पुश का उपयोग केवल तभी करता हूं जब मैं रिमोट में अपना परिवर्तन देखना चाहता था (इसके बाद मैं जांच करूंगा कि क्या मेरे कोड ने जेनकिंस में काम किया है)
खैर, मूल रूप से गिट कमिट आपके परिवर्तनों को आपके स्थानीय रेपो में डाल देता है, जबकि गिट पुश आपके परिवर्तनों को दूरस्थ स्थान पर भेजता है। चूँकि git एक वितरित संस्करण नियंत्रण प्रणाली है, इसलिए अंतर यह है कि कमिट आपके स्थानीय रिपॉजिटरी में बदलाव करेगा, जबकि पुश एक रिमोट रेपो तक परिवर्तन को धक्का देगा।
स्रोत Google
http://gitref.org/basic/ यह लिंक बहुत उपयोगी भी होगा
आम शब्दों में, git commitइससे पहले कि git pushआप उन्हें उस क्रम में चलाने के लिए कदम है सफलतापूर्वक अपनी फ़ाइल को गिटब करने के लिए।
git commitस्थानीय रेपो में फ़ाइलों का मंचन करना है। git pushदूरस्थ मास्टर शाखा के साथ स्थानीय पक्ष की मास्टर शाखा को तेज़ी से अग्रेषित करना है। लेकिन मर्ज हमेशा सफल नहीं होगा। यदि अस्वीकृति प्रकट होती है, तो आपको ऐसा करना होगा pullताकि आप एक सफल बना सकें git push।