所以想象一下,我有一个我从某个来源克隆的本地存储库.在我的初始克隆时,原点有四个分支:featureA,featureB,featureC和master.如果我将更改推送到删除featureA分支的原点,我希望在下次发出时看到有关它被删除的内容:
$ git pull origin
然而,发生的事情是我没有看到任何东西,当我试图将特定分支拉下来时
$ git pull origin featureA
我收到以下错误:
致命:无法找到远程参考功能
致命:远程端意外挂断
这完全有道理,因为分支实际上是从遥控器中删除所以是的,参考不再存在,但是我想知道为什么我没有得到关于这个事实的通知.我的遥控器的.git/config看起来像这样:
[remote"origin"]
fetch = + refs/heads/:refs/remotes/origin /
url = cjames@svn.perecep.com:/data/git/perecep.git
我写了一个小的shell脚本,它使用git ls-remote和git branch -r的输出来检测服务器上不再存在分支的远程引用,并提示我是否要删除它们但我是想知道我是否只是在做一些内在错误的事情?
我不认为你做错了什么。您的本地分支不依赖于远程分支的存在,并且删除远程分支而您的本地分支(具有相同的名称和表面上相同的历史记录)继续存在是完全有效的事态。您所描述的“集中式”方法(如果有的话)在 Git 中会被认为是非正统的。
--track编辑:顺便说一句,您可能对 git-branch 的和--no-track选项以及配置变量感兴趣branch.autosetupmerge。