सर्वोत्तम विकल्प
संभवतः आपके गैर-नंगे रिमोट रिपॉजिटरी में धकेलने के लिए सबसे साफ, कम से कम भ्रमित करने वाला और सबसे सुरक्षित तरीका है, रिमोट में समर्पित शाखाओं को धकेलना जो आपकी लैपटॉप शाखाओं का प्रतिनिधित्व करते हैं।
आइए सरलतम मामले को देखें, और मान लें कि आपके पास प्रत्येक रेपो में केवल एक शाखा है: मास्टर। जब आप मास्टर -> मास्टर, पुश मास्टर -> लैपटॉप-मास्टर (या एक समान नाम) को आगे बढ़ाने के बजाय अपने लैपटॉप से रिमोट रेपो पर धकेलते हैं। इस तरह से रिमोट रेपो में वर्तमान में चेक-आउट मास्टर शाखा को प्रभावित नहीं करता है। लैपटॉप से ऐसा करने के लिए, कमांड बहुत सरल है:
git push origin master:laptop-master
इसका मतलब है कि स्थानीय मास्टर शाखा को दूरस्थ रिपॉजिटरी में "लैपटॉप-मास्टर" नामक शाखा में धकेल दिया जाएगा। अपने दूरस्थ रेपो में, आपके पास "लैपटॉप-मास्टर" नामक एक नई शाखा होगी जिसे आप तैयार होने पर अपने दूरस्थ मास्टर में विलय कर सकते हैं।
वैकल्पिक विकल्प
केवल मास्टर -> मास्टर को धक्का देना भी संभव है, लेकिन गैर-नंगे रेपो की वर्तमान में जांच की गई शाखा को धक्का देना आम तौर पर अनुशंसित नहीं है, क्योंकि यह भ्रमित हो सकता है यदि आप समझ नहीं पाते हैं कि क्या चल रहा है। ऐसा इसलिए है क्योंकि चेक-आउट ब्रांच में जाने से वर्क ट्री अपडेट नहीं होता है, इसलिए git status
जिस चेक-आउट ब्रांच में धकेल दिया गया था, उसकी जाँच करने पर ठीक वैसा ही अंतर दिखाई देगा जैसा हाल ही में देखा गया था। यह विशेष रूप से भ्रामक होगा यदि काम पेड़ को धक्का देने से पहले गंदा हो गया था, जो एक बड़ा कारण है कि यह अनुशंसित नहीं है।
यदि आप केवल मास्टर -> मास्टर को आगे बढ़ाने की कोशिश करना चाहते हैं, तो कमांड सिर्फ:
git push origin
लेकिन जब आप रिमोट रेपो में वापस जाते हैं, तो आप सबसे अधिक संभावना है कि git reset --hard HEAD
काम के पेड़ को उस सामग्री के साथ सिंक करने के लिए करना चाहते हैं जिसे धक्का दिया गया था। यह खतरनाक हो सकता है , क्योंकि अगर दूरस्थ कार्य के पेड़ में कोई भी अनपेक्षित परिवर्तन हैं जो आप रखना चाहते थे तो यह उन्हें मिटा देगा। सुनिश्चित करें कि आप जानते हैं कि इससे पहले कि आप इसे आज़माएं, या कम से कम पहले बैकअप बना लें, इसके परिणाम क्या हैं!
EDIT Git 2.3 के बाद से, आप "पुश-टू-परिनियोजित" git पुश: https://github.com/blog/1957-git-2-3-has-been-released का उपयोग कर सकते हैं । लेकिन एक अलग शाखा में धकेलना और फिर विलय आमतौर पर बेहतर होता है क्योंकि यह एक वास्तविक मर्ज करता है (इसलिए मर्ज करता है जैसे बिना किसी बदलाव के काम करता है)।