git - आप गिट में रिमोट शाखा को ट्रैक करना बंद कैसे करते हैं?




branch git-track (6)

आप रिमोट-ट्रैकिंग शाखा का उपयोग कर हटा सकते हैं

git branch -d -r origin/<remote branch name>

जैसा कि वीओएनसी ऊपर उल्लेख करता है। हालांकि, अगर आप शाखा की अपनी स्थानीय प्रतिलिपि रखते हैं, तो git push अभी भी उस शाखा को धक्का देने का प्रयास करेगा (जो आपको एक गैर-फास्ट-फॉरवर्ड त्रुटि दे सकता है जैसा कि उसने रफिन के लिए किया था )। ऐसा इसलिए है क्योंकि कॉन्फ़िगर push.default matching लिए डिफ़ॉल्ट है जिसका अर्थ है:

मिलान - सभी मिलान शाखाओं को धक्का। दोनों सिरों में एक ही नाम रखने वाली सभी शाखाओं को मिलान माना जाता है। यह डिफ़ॉल्ट है।

( push.default तहत http://git-scm.com/docs/git-config देखें)

ऐसा लगता है कि जब आप रिमोट-ट्रैकिंग शाखा को हटाते हैं तो शायद यह नहीं था कि आप push.default को upstream सेट कर सकते हैं (या यदि आपके पास गिट है <1.7.4.3)

अपस्ट्रीम - वर्तमान शाखा को अपनी अपस्ट्रीम शाखा में धक्का दें।

का उपयोग करते हुए

git config push.default upstream

और गिट उन शाखाओं को धक्का देने की कोशिश करना बंद कर देगा जिन्हें आपने "ट्रैकिंग बंद कर दी है।"

नोट: सरल समाधान केवल आपकी स्थानीय शाखा का नाम किसी अन्य चीज़ पर बदलना होगा। इससे भ्रम के लिए कुछ संभावित क्षमता भी खत्म हो जाएगी।

आप Git में रिमोट शाखा को ट्रैक करना बंद कैसे करते हैं?

मैं ट्रैकिंग रोकने के लिए कह रहा हूं क्योंकि मेरे ठोस मामले में, मैं स्थानीय शाखा को हटाना चाहता हूं, लेकिन रिमोट नहीं। स्थानीय को हटाने और रिमोट पर हटाने को धक्का देना रिमोट शाखा को भी हटा देगा:

  • मैं स्थानीय रूप से और गिटहब दोनों में गिट शाखा कैसे हटा सकता हूं?

क्या मैं सिर्फ git branch -d the_branch कर सकता हूं, और जब मैं बाद में git push हूं तो यह प्रचारित नहीं होगा?

क्या यह केवल प्रचार करेगा अगर मैं git push origin :the_branch चलाने के git push origin :the_branch बाद में git push origin :the_branch ?


ऐसा करने का सबसे आसान तरीका शाखा को दूरस्थ रूप से हटाना है और फिर उपयोग करना है:

गिट fetch --prune (उर्फ गिट fetch -p)


यह सवाल का जवाब नहीं है, लेकिन मैं यह नहीं समझ सका कि उपर्युक्त टिप्पणी में सभ्य कोड स्वरूपण कैसे प्राप्त करें ... इसलिए ऑटो-डाउन-प्रतिष्ठा-यहां-मेरी टिप्पणी है।

मेरे पास @dobconfig में एक फैंसी शर्मेंसी [उर्फ] प्रविष्टि में @Dobes द्वारा सबमिट की गई नुस्खा है:

# to untrack a local branch when I can't remember 'git config --unset'
cbr = "!f(){ git symbolic-ref -q HEAD 2>/dev/null | sed -e 's|refs/heads/||'; }; f"
bruntrack = "!f(){ br=${1:-`git cbr`};  \
    rm=`git config --get branch.$br.remote`; \
    tr=`git config --get branch.$br.merge`; \
    [ $rm:$tr = : ] && echo \"# untrack: not a tracking branch: $br\" && return 1; \
    git config --unset branch.$br.remote; git config --unset branch.$br.merge; \
    echo \"# untrack: branch $br no longer tracking $rm:$tr\"; return 0; }; f"

तो मैं बस दौड़ सकता हूँ

$ git bruntrack branchname

वर्तमान शाखा के लिए अपस्ट्रीम को हटाने के लिए:

$ git branch --unset-upstream

यह गिट v.1.8.0 या नए के लिए उपलब्ध है। (स्रोत: 1.7.9 रेफरी , 1.8.0 रेफरी )

source


स्थानीय और दूरस्थ शाखा चलाने के बीच संबंध को हटाने के लिए:

git config --unset branch.<local-branch-name>.remote
git config --unset branch.<local-branch-name>.merge

वैकल्पिक रूप से स्थानीय शाखा को बाद में हटाएं यदि आपको इसकी आवश्यकता नहीं है:

git branch -d <branch>

यह रिमोट शाखा को हटा नहीं देगा।


git branch का उपयोग करते हुए, योशुआ वुएट्स के answer में उल्लेख किया गया है:

git branch --unset-upstream

अन्य विकल्प:

आपको अपनी स्थानीय शाखा को हटाना नहीं है।

बस अपनी रिमोट ट्रैकिंग शाखा हटाएं:

git branch -d -r origin/<remote branch name>

(यह रिमोट रेपो पर शाखा को हटा नहीं देगा !)

देखें " गिट-फेच समझने में कठिनाई हो रही है "

स्थानीय ट्रैकिंग शाखाओं, केवल रिमोट ट्रैकिंग शाखाओं की ऐसी कोई अवधारणा नहीं है।
तो origin/master origin रेपो में master लिए एक दूरस्थ ट्रैकिंग शाखा है

जैसा कि डोब्स वांडर्मियर के answer में बताया गया है, आपको स्थानीय शाखा से जुड़े विन्यास को रीसेट करने की भी आवश्यकता है:

git config --unset branch.<branch>.remote
git config --unset branch.<branch>.merge

<branchname> लिए अपस्ट्रीम जानकारी निकालें।
यदि कोई शाखा निर्दिष्ट नहीं है तो यह वर्तमान शाखा में डिफ़ॉल्ट है।

(गिट 1.8+, अक्टूबर 2012, कार्लोस मार्टिन नीटो ( carlosmn ) द्वारा b84869e प्रतिबद्ध करें )

इससे कोई भी पुश / पुल पूरी तरह से origin/<remote branch name> अनजान हो जाएगा।





git-track