मेरे पास एक सर्वर पर एक निजी रेपो है और नियमित रूप से इसे रिबेस / फोर्स-पुश करता है, जो अक्सर मेरे दूसरे कंप्यूटर पर स्थानीय शाखा को रीसेट करने के लिए आवश्यक होता है। इसलिए मैंने निम्नलिखित उपनाम "कैचअप" बनाया, जो वर्तमान शाखा के लिए ऐसा करने की अनुमति देता है। अन्य उत्तर के विपरीत, इस उपनाम में कोई हार्डकोड शाखा का नाम नहीं है।
कस के पकड।
[alias]
catchup = "!f(){ echo -n \"reset \\033[0;33m$(git symbolic-ref -q --short HEAD)\\033[0m to \\033[0;33m$(git for-each-ref --format='%(upstream:short)' $(git symbolic-ref -q HEAD))\\033[0m? (Y/n) \"; read -r ans; if [ \"$ans\" = \"y\" -o \"$ans\" = \"Y\" -o -z \"$ans\" ]; then git reset --hard $(git for-each-ref --format='%(upstream:short)' $(git symbolic-ref -q HEAD)); else echo \"catchup aborted\"; fi }; f"
उचित रूप से स्वरूपित (यह .itconfig में नए के साथ काम नहीं करेगा) यह इस तरह दिखता है:
"
!f(){
echo -n \"reset \\033[0;33m$(git symbolic-ref -q --short HEAD)\\033[0m to \\033[0;33m$(git for-each-ref --format='%(upstream:short)' $(git symbolic-ref -q HEAD))\\033[0m? (Y/n) \";
read -r ans;
if [ \"$ans\" = \"y\" -o \"$ans\" = \"Y\" -o -z \"$ans\" ]; then
git reset --hard $(git for-each-ref --format='%(upstream:short)' $(git symbolic-ref -q HEAD));
else
echo \"catchup aborted\";
fi
}; f
"
\\033[0;33m
और \\033[0m
रंग के साथ वर्तमान शाखा और नदी के ऊपर पर बल के लिए है।
$(git symbolic-ref -q --short HEAD)
वर्तमान शाखा का नाम है
$(git for-each-ref --format='%(upstream:short)' $(git symbolic-ref -q HEAD))
वर्तमान शाखा का अपस्ट्रीम है।
चूंकि रीसेट एक संभावित खतरनाक कॉल है (विशेष रूप से -हार्ड विकल्प के साथ, आप किसी भी परिवर्तन को खो देंगे), यह पहले आपको बताता है कि यह क्या करने वाला है। उदाहरण के लिए, यदि आप रिमोट -क्यूकैप / देव-कंटेनर नामक शाखा देव-कंटेनर पर हैं और आप प्रवेश करते हैं , तो आपको संकेत दिया जाएगा:git catchup
देवक-कंटेनर को qcpp / dev- कंटेनर में रीसेट करें? (Y n)
यदि आप फिर y टाइप करते हैं या सिर्फ रिटर्न हिट करते हैं, तो यह रिसेट करेगा। यदि आप कुछ और दर्ज करते हैं, तो रीसेट नहीं किया जाएगा।
यदि आप सुपर सुरक्षित होना चाहते हैं और प्रोग्रामेटिक रूप से अनस्टेज / अनकमिज़्ड बदलावों को खोने से रोकते हैं, तो आप अलग -अलग इंडेक्स के लिए चेक के अनुसार उपरोक्त उपनाम को पिंपल कर सकते हैं ।
चेतावनी का अनिवार्य शब्द: यदि आप सार्वजनिक रिपॉजिटरी पर काम कर रहे हैं तो अन्य लोगों के पास काम पर आधारित है, और आपको इस उपनाम की आवश्यकता है, आप इसे गलत कर रहे हैं ™ ।