दिलचस्प पोस्ट
प्रकार की त्रुटि त्रुटि http.get (…) के साथ कोणीय 2 HTTP प्राप्त। मैप टेम्पलेट क्यों आंशिक रूप से विशेष रूप से नहीं किया जा सकता है? "सशर्त छलांग या चाल अनियमित मूल्य (मूल्यों) पर निर्भर करता है" को इंगित करना "वालग्रिंड संदेश" सी। स्कैनफ़ में इनपुट से पहले हो जाता है मुसीबत TextView.setTextSize असामान्य रूप से व्यवहार करता है – विभिन्न स्क्रीन के लिए गतिशील रूप से टेक्स्टएव का टेक्स्ट आकार सेट करना 8 सदस्यों की सूची में LINQ विभाजन सूची एंड्रॉइड – listview स्थिति के आधार पर मद देखें एंट या मेवेन के बजाय ग्रेडल का उपयोग क्यों करें? PHP स्क्रिप्ट प्रोफ़ाइल करने का सबसे सरल तरीका तैयार किए गए स्थान में सेटडेट का उपयोग करना फ़ंक्शन कॉल / कॉल करने योग्य (जैसे, मॉडल ऑब्जेक्ट निर्माण के समय के संबंध में एक तिथि) एक Django मॉडल फ़ील्ड का डिफ़ॉल्ट मान कैसे सेट करें जावा स्क्रिप्ट में नाम स्ट्रिंग के द्वारा गतिशील वैश्विक गति प्राप्त करें एक्शन बार के तहत प्रोग्रेसबार लैंडस्केप मोड में आईफोन ऐप, 2008 सिस्टम PHP: यूनिकोड कोडपॉइंट को यूटीएफ -8 में कनवर्ट करें

मैं कैसे जीआईटी को दिखा सकता हूं कि कौन सी शाखाएं चल रही हैं?

मुझे पता है कि मैं git branch --all कर सकता हूं और जो मुझे स्थानीय और दूरस्थ दोनों शाखाओं से दिखाती हैं, लेकिन मुझे उन दोनों के बीच के रिश्तों को दिखाने में यह उपयोगी नहीं है।

मैं शाखाओं को एक तरह से कैसे सूचीबद्ध करता हूं, जो यह दर्शाता है कि किस शाखा का पता चलता है कि किस रिमोट?

वेब के समाधान से एकत्रित समाधान "मैं कैसे जीआईटी को दिखा सकता हूं कि कौन सी शाखाएं चल रही हैं?"

बहुत ज्यादा एक चीनी मिट्टी के बरतन कमांड, अच्छा नहीं अगर आप इसे स्क्रिप्टिंग के लिए चाहते हैं:

 git branch -vv # doubly verbose! 

नोट करें कि git 1.8.3 के साथ, यह अपस्ट्रीम शाखा नीले रंग में प्रदर्शित होती है (देखें " यह शाखा ट्रैकिंग (अगर कुछ भी) जीआईटी में है? ")


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

git remote show origin

अपने रिमोट के नाम के साथ 'मूल' को बदल दें

कुबी के जवाब का एक विकल्प .git .git/config फाइल को देखने के लिए है, जो स्थानीय रिपॉजिटरी विन्यास को दर्शाता है:

cat .git/config

अगर आप git-rev-parse लिए मैन पेज को देखते हैं, तो आपको निम्न सिंटैक्स का वर्णन होगा:

<branchname>@{upstream} , जैसे master@{upstream} , @{u}

@{upstream} प्रत्यय को एक ब्रैंचिन (लघु रूप से <branchname>@{u} ) उस शाखा को संदर्भित करता है जो ब्रानकाइन द्वारा निर्दिष्ट शाखा के शीर्ष पर निर्माण करने के लिए सेट है। एक लापता branchname मौजूदा एक चूक

इसलिए शाखा master की अपस्ट्रीम को खोजने के लिए, आप ऐसा करेंगे:

 git rev-parse --abbrev-ref master@{upstream} # => origin/master 

प्रत्येक शाखा के लिए जानकारी प्रिंट करने के लिए, आप ऐसा कुछ कर सकते हैं:

 while read branch; do upstream=$(git rev-parse --abbrev-ref $branch@{upstream} 2>/dev/null) if [[ $? == 0 ]]; then echo $branch tracks $upstream else echo $branch has no upstream configured fi done < <(git for-each-ref --format='%(refname:short)' refs/heads/*) # Output: # master tracks origin/master # ... 

यह रिफ्स को पार्स करने और मैन्युअल रूप से कॉन्फ़िगर करने से क्लीनर है।

वर्तमान शाखा के लिए, यहां दो अच्छे विकल्प हैं:

 % git rev-parse --abbrev-ref --symbolic-full-name @{u} origin/mainline 

या

 % git for-each-ref --format='%(upstream:short)' $(git symbolic-ref -q HEAD) origin/mainline 

यह जवाब यहां भी एक अलग सवाल है जो (गलत) डुप्लिकेट के रूप में चिह्नित किया गया था।

 git for-each-ref --format='%(refname:short) <- %(upstream:short)' refs/heads 

प्रत्येक स्थानीय शाखा के लिए एक लाइन दिखाएगा एक ट्रैकिंग शाखा दिखाई देगी:

 master <- origin/master 

एक गैर-नज़र रखने वाला कोई ऐसा दिखेगा:

 test <- 

वर्तमान शाखा के लिए, आप git checkout (डब्ल्यू / ओ किसी शाखा) भी कह सकते हैं। यह वर्तमान शाखा के लिए ट्रैकिंग जानकारी को दिखाने के लिए, अगर मौजूद है, दिखाने के लिए कोई दुष्प्रभाव नहीं है।

 $ git checkout Your branch is up-to-date with 'origin/master'. 

मैं इस उपनाम का उपयोग करता हूं

 git config --global alias.track '!f() { ([ $# -eq 2 ] && ( echo "Setting tracking for branch " $1 " -> " $2;git branch --set-upstream $1 $2; ) || ( git for-each-ref --format="local: %(refname:short) <--sync--> remote: %(upstream:short)" refs/heads && echo --Remotes && git remote -v)); }; f' 

फिर

 git track 

ओलिवर रिफ्लो के उत्तर के आधार पर

 if [ $# -eq 2 ] then echo "Setting tracking for branch " $1 " -> " $2 git branch --set-upstream $1 $2 else echo "-- Local --" git for-each-ref --shell --format="[ %(upstream:short) != '' ] && echo -e '\t%(refname:short) <--> %(upstream:short)'" refs/heads | sh echo "-- Remote --" REMOTES=$(git remote -v) if [ "$REMOTES" != '' ] then echo $REMOTES fi fi 

यह केवल स्थानीय विन्यास के साथ ही दिखाता है।

इसे अपने स्क्रिप्ट पर जीआईटी-ट्रैक नामक एक स्क्रिप्ट पर लिखें, जिसमें आपको एक git ट्रैक कमांड मिलेगा

https://github.com/albfan/git-showupstream पर एक अधिक विस्तृत संस्करण