如何停止跟踪Git中的远程分支
我要求停止跟踪,因为在我的具体情况下,我想删除本地分支,而不是远程分支。删除本地分支并将删除推到远程也将删除远程分支:
我可以只做git branch -d the_branch,当我稍后git push时它就不会被传播了?
如果我稍后要运行git push origin :the_branch,它会传播吗?
发布于 2021-09-25 15:25:47
局部跟踪分支
如果您讨论的是配置为main -to和pull-from (上游远程分支)的本地分支(例如,push、dev),则可以使用以下方法禁用该分支:
❯ git branch --unset-upstream <LOCALBRANCH>例如:
❯ git branch --unset-upstream dev
❯ git branch --unset-upstream feature-x远程跟踪分支
如果您指的是名称<REMOTE>/<BRANCH>的分支(例如,origin/main、origin/dev),这些分支显示在git log (和.git/refs/remotes/<REMOTE>/目录)中,显示远程分支的状态,那么您可以通过用自己的新的自定义列表覆盖当前持有的远程跟踪分支的列表,停止对其进行“跟踪”(使其更新):
❯ git remote set-branches <REMOTE> [<REMOTE-BRANCH> …]此外,如果您不希望在git log (和.git/refs/remotes/<REMOTE>/目录)中看到那些远程跟踪分支,那么您可以使用以下方法删除它们:
❯ git branch --delete --remotes -- <REMOTE>/<BRANCH>
Deleted remote-tracking branch <REMOTE>/<BRANCH> (was 1f1a655).例如:
# keep tracking `origin/main`, and `origin/dev`,
# untrack all other `origin/*` remote branches
❯ git remote set-branches origin main dev
# delete remote branches previously tracked, from the
# `.git/refs/remotes/<REMOTE>/` directory
❯ git branch --delete --remotes -- origin/feature-x origin/feature-y
❯ git branch --delete --remotes -- origin/hotfix-z枯萎的远距离树枝
最后,如果已经从远程存储库本身删除了远程分支(已变得陈旧),并且希望更新本地存储库以反映这一点,则可以删除(修剪)它们:
# automatically
❯ git remote prune <REMOTE>
Pruning <REMOTE>
URL: <REMOTEURL>
* [pruned] <REMOTE>/<BRANCH>...or
# manually
❯ git branch --delete --remotes -- <REMOTE>/<BRANCH>
Deleted remote-tracking branch <REMOTE>/<BRANCH> (was 1f1a655).PS
您可以使用以下方法检查跟踪状态:
❯ git remote show <REMOTE>例如:
❯ git remote show origin
* remote origin
Fetch URL: /Users/johndoe/bare-remote
Push URL: /Users/johndoe/bare-remote
HEAD branch: ant
Remote branches:
brooms tracked
bull tracked
cat tracked
deer tracked
dog tracked
foxy tracked
john tracked
master tracked
new tracked
tim tracked
timothy tracked
Local branches configured for 'git pull':
ant merges with remote ant
master merges with remote master
Local refs configured for 'git push':
ant pushes to ant (up to date)
master pushes to master (up to date)set-branches:更改指定的远程跟踪的分支列表。这可以用于跟踪远程初始设置之后可用的远程分支的子集。
prune:删除与之相关的陈旧引用。默认情况下,删除下陈旧的远程跟踪分支,但根据全局配置和远程的配置,我们甚至可能会修剪没有被推送到那里的本地标记。
show:给出了一些关于遥控器的信息。--unset-upstream:删除上游信息。
--delete:删除一个分支。
--remotes:列出或删除(如果与-d一起使用)远程跟踪分支.https://stackoverflow.com/questions/3046436
复制相似问题