अन्य सभी उत्तर "अपस्ट्रीम" (जिस शाखा से आप खींचते हैं) के बारे में बात करते हैं।
लेकिन एक स्थानीय शाखा एक अलग शाखा को धक्का दे सकती है, जिससे वह खींचती है।
masterदूरस्थ ट्रैकिंग शाखा को धक्का नहीं दे सकता है " origin/master"।
के लिए अपस्ट्रीम शाखा masterहो सकती है origin/master, लेकिन यह रिमोट ट्रैकिंग शाखा origin/xxxया यहां तक कि धक्का दे सकती है anotherUpstreamRepo/yyy।
जिन्हें मूल्य branch.*.pushremoteके साथ-साथ वर्तमान शाखा द्वारा निर्धारित किया जाता है global remote.pushDefault।
यह है कि एक ही है कि पटरियों: दूरस्थ ट्रैकिंग शाखा है जो मायने रखता है जब unpushed प्रतिबद्ध मांग branch at the remoteजहां स्थानीय शाखा पर लाई जानी होगी। हो सकता है, फिर से, या यहां तक कि ।
branch at the remoteorigin/xxxanotherUpstreamRepo/yyy
Git 2.5+ (Q2 2015) उसके लिए एक नया शॉर्टकट पेश करता है: <branch>@{push}
प्रतिबद्ध 29bc885 देखें , 3 डीbe9db को कमिट करें , adfe5d0 को कमिट करें , 48c5847 को कमिट करें , a1ad0eb को कमिट करें , e291c75 को कमिट करें , 979cb24 को कमिट करें , 3a429d0 के लिए कमिट करें , a9f9f8c के लिए , 8766e6f पर करें , da66927 , 27662727 पर कमेंट करें । 2015], और जेफ किंग ( ) द्वारा e41bf35 [01 मई 2015] । ( जूनियो सी हमानो द्वारा विलय -peff
gitsterin प्रतिबद्ध c4a8354 , 05 जून 2015)
प्रतिबद्ध adfe5d0 बताते हैं:
sha1_name: @{push}आशुलिपि लागू करें
एक त्रिकोणीय वर्कफ़्लो में, प्रत्येक शाखा में ब्याज के दो अलग-अलग बिंदु हो सकते हैं: @{upstream}जो आप सामान्य रूप से खींचते हैं, और वह गंतव्य जिसे आप सामान्य रूप से धक्का देते हैं। बाद के लिए कोई आशुलिपि नहीं है, लेकिन यह उपयोगी है।
उदाहरण के लिए, आप जानना चाह सकते हैं कि आपने कौन सा काम अभी तक नहीं किया है :
git log @{push}..
या एक अधिक जटिल उदाहरण के रूप में, कल्पना करें कि आप सामान्य रूप से origin/master(जिसे आप अपने रूप में सेट करते हैं @{upstream}) से परिवर्तन खींचते हैं , और परिवर्तनों को अपने स्वयं के व्यक्तिगत कांटे (जैसे, जैसे myfork/topic) पर धकेल देते हैं ।
आप कई मशीनों से अपने कांटे को धक्का दे सकते हैं, जिससे आपको अपस्ट्रीम के बजाय पुश गंतव्य से परिवर्तन को एकीकृत करने की आवश्यकता होती है ।
इस पैच के साथ, आप बस कर सकते हैं:
git rebase @{push}
पूरा नाम लिखने के बजाय।
प्रतिबद्ध 29bc885 कहते हैं:
for-each-ref: " %(push)" प्रारूप स्वीकार करें
जिस तरह हमारे पास प्रत्येक रेफ के लिए %(upstream)" @{upstream}" रिपोर्ट करने के लिए " " है, यह पैच " %(push)" टू मैच " @{push}" जोड़ता है ।
यह अपस्ट्रीम के रूप में समान ट्रैकिंग प्रारूप संशोधक का समर्थन करता है (क्योंकि आप जानना चाहते हैं, उदाहरण के लिए, किन शाखाओं को धक्का देना है )।
यदि आप यह देखना चाहते हैं कि आप जिस स्थानीय शाखा को आगे बढ़ा रहे हैं, उसकी तुलना में आपकी स्थानीय शाखाएँ कितनी आगे / पीछे हैं:
git for-each-ref --format="%(refname:short) %(push:track)" refs/heads
git log @{push}..। उस नए शॉर्टकट को देखें@{push}( मेरे द्वारा बताए गए