如何停止跟踪Git中的远程分支?

我要求停止跟踪,因为在我的具体情况下,我想删除本地分支,但不是远程分支。删除本地分支并将删除推到remote也会删除远程分支:

如何在本地和GitHub中删除Git分支?

我能不能只做git branch -d the_branch,当我之后推送git时,它不会被传播?

如果我稍后运行git push origin:the_branch,它是否只会传播?


当前回答

您可以使用这种方式删除远程分支

git remote remove <your remote branch name>

其他回答

这不是问题的答案,但我不知道如何在上面的评论中获得体面的代码格式…因此,我的评论是自动降低声誉。

在我的.gitconfig中,我有@Dobes在一个花哨的shmancy[别名]条目中提交的食谱:

# 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 -rd $(Git branch -a | grep '{pattern}' | cut -d'/' -f2-10 | xargs)

您可以使用这种方式删除远程分支

git remote remove <your remote branch name>

最简单的方法是远程删除分支,然后使用:

Git获取——删除(也就是Git获取-p)

要移除当前分支的上游,请执行以下操作:

$ git branch --unset-upstream

这可用于Git v.1.8.0或更新版本。(来源:1.7.9 ref, 1.8.0 ref)