我如何 git 远程修剪特定的远程分支?
How would I git remote prune just a specific remote branch?
我的一个同事"reused"一个分支名称,所以每次拉,我都会得到一个错误信息:
error: 'refs/remotes/origin/branch' exists; cannot create 'refs/remotes/origin/branch/subbranch'
...
error: some local refs could not be updated; try running
'git remote prune origin' to remove any old, conflicting branches
问题是,我不想进行大规模的远程修剪 - 我很偏执,我想保留那些本地参考资料,以防其他同事以新的和有趣的方式搞砸。
有没有一种方法可以只修剪有问题的分支,而不同时修剪所有其他在我的本地存储库中愉快地作为远程引用的分支?
看起来你可以专门删除本地参考分支,如果你使用git branch
的-r
选项:
git branch -r --delete origin/branch
这之后,新的分支就可以正常创建了,而且fetch和pull也不会出错。 (并且 git remote prune --dry-run origin
仍然报告要修剪的分支。)
我的一个同事"reused"一个分支名称,所以每次拉,我都会得到一个错误信息:
error: 'refs/remotes/origin/branch' exists; cannot create 'refs/remotes/origin/branch/subbranch'
...
error: some local refs could not be updated; try running
'git remote prune origin' to remove any old, conflicting branches
问题是,我不想进行大规模的远程修剪 - 我很偏执,我想保留那些本地参考资料,以防其他同事以新的和有趣的方式搞砸。
有没有一种方法可以只修剪有问题的分支,而不同时修剪所有其他在我的本地存储库中愉快地作为远程引用的分支?
看起来你可以专门删除本地参考分支,如果你使用git branch
的-r
选项:
git branch -r --delete origin/branch
这之后,新的分支就可以正常创建了,而且fetch和pull也不会出错。 (并且 git remote prune --dry-run origin
仍然报告要修剪的分支。)