为什么git总是通过强制更新来重新创建分支?
每当我做一个fetch时,我都会收到Git的通知,说它已经收到了一个强制更新,它说一个分支是新的。每次抓取都是这样。我想知道为什么会发生这种情况,以及如何防止它发生(意思是修复它)。我试过为什么git总是通过强制更新来重新创建分支?,git,github,Git,Github,每当我做一个fetch时,我都会收到Git的通知,说它已经收到了一个强制更新,它说一个分支是新的。每次抓取都是这样。我想知道为什么会发生这种情况,以及如何防止它发生(意思是修复它)。我试过rm.git/refs/remotes/MWNG,但没有效果 $ git fetch MWNG From github.com:MWNG/multikanal.epi7.mysite + 022873b...ecaa5df Feature/2005-registrering-sunnhetsbonus -&g
rm.git/refs/remotes/MWNG
,但没有效果
$ git fetch MWNG
From github.com:MWNG/multikanal.epi7.mysite
+ 022873b...ecaa5df Feature/2005-registrering-sunnhetsbonus -> MWNG/Feature/2005-registrering-sunnhetsbonus (forced update)
* [new branch] feature/2005-registrering-sunnhetsbonus -> MWNG/feature/2005-registrering-sunnhetsbonus
* [new branch] feature/azure-rest-api -> MWNG/feature/azure-rest-api
$ git fetch MWNG
From github.com:MWNG/multikanal.epi7.mysite
+ 022873b...ecaa5df Feature/2005-registrering-sunnhetsbonus -> MWNG/Feature/2005-registrering-sunnhetsbonus (forced update)
* [new branch] feature/2005-registrering-sunnhetsbonus -> MWNG/feature/2005-registrering-sunnhetsbonus
* [new branch] feature/azure-rest-api -> MWNG/feature/azure-rest-api
从上面的输出可以看出,可能存在两个不同但相关的问题。一个分支有一个强制推送更新,另一个没有,而这两个分支每次都应该是新的分支。同样,问题与大小写折叠有关
问题可以归结为两部分:
git fetch
,例如git fetch mwn
。这将带来所有分支,并将它们的信息放入.git/FETCH\u HEAD
,其中(因为它是文件数据)将记录所有引用及其IDFeature/joe-used-a-bad-name
(小写f
,我们要责备joe,不管他是谁)。从FETCH\u HEAD
中查找哈希ID,注意获得正确的大小写组合。如果您有类似于awk
的工具,您可以执行以下操作:
awk '$4 == "'\''Feature/2005-registrering-sunnhetsbonus'\''" { print $1 }' < \
.git/FETCH_HEAD
(注意:如果缩写的SHA-1 ID是唯一的,您可以只使用它。如果不是,请粘贴准确的ID,这肯定会起作用。)git push
删除坏名称:
git push MWNG :Feature/2005-registrering-sunnhetsbonus
(或者git push--delete MWNG Feature/2005 registerering sunnhetsbonus
,这是做同样事情的一种更长但更难忘的方式)。只要避免使用--delete
标志:一个git push
,同时使用ID和新名称,以及空字符串和旧名称,就可以将其与步骤3结合使用gitfetch--prune mwn
以使用新名称更新您自己的存储库如果您不需要保留名称的一个版本,那么就容易多了:只需在“坏”名称上执行删除推送,再加上最后的带删减的fetch选项,以消除对您自己Git的混淆。看起来像是区分大小写的分支名称问题
Feature/2005-*
正在local.git/refs中创建一个新分支Feature/2005-*
。你能验证一下这里列出的新分支是否在本地git branch
中吗?我想你肯定了解了一些事情,这提醒了我我以前有过这样的经历。哦,在Mac上拥有一个可容忍大小写的文件系统的乐趣。。。
git push MWNG :Feature/2005-registrering-sunnhetsbonus