每次我从所有遥控器上取文时,其他用户的遥控器会不断删除分支并重新添加:
git -c diff.mnemonicprefix=false -c core.quotepath=false fetch --prune jcaseiro
From https://my.url.com/jcaseiro/project-android
x [deleted] (none) -> jcaseiro/Sprint8/bugfix/SIMSwap-Master
x [deleted] (none) -> jcaseiro/Sprint8/bugfix/addCheckForNullLinkFragment
x [deleted] (none) -> jcaseiro/Sprint8/bugfix/fixErrorRedirectsPPEScreen
x [deleted] (none) -> jcaseiro/Sprint8/bugfix/fixNullPointerExceptionDropboxInfo
x [deleted] (none) -> jcaseiro/sprint7/bugfix/Fix_clickable_almost_there_screen
x [deleted] (none) -> jcaseiro/sprint7/bugfix/PromoTextAlbanianString
x [deleted] (none) -> jcaseiro/sprint7/bugfix/addCheckForNullLinkFragment
x [deleted] (none) -> jcaseiro/sprint7/bugfix/fixPPEErrorRedirects
* [new branch] Sprint7/bugfix/Fix_clickable_almost_there_screen -> jcaseiro/Sprint7/bugfix/Fix_clickable_almost_there_screen
* [new branch] Sprint7/bugfix/LogoutNotificationProblem -> jcaseiro/Sprint7/bugfix/LogoutNotificationProblem
* [new branch] Sprint7/bugfix/PromoTextAlbanianString -> jcaseiro/Sprint7/bugfix/PromoTextAlbanianString
* [new branch] Sprint7/bugfix/addCheckForNullLinkFragment -> jcaseiro/Sprint7/bugfix/addCheckForNullLinkFragment
* [new branch] Sprint7/bugfix/fixPPEErrorRedirects -> jcaseiro/Sprint7/bugfix/fixPPEErrorRedirects
* [new branch] Sprint7/bugfix/fixWrongBehaviorBroke -> jcaseiro/Sprint7/bugfix/fixWrongBehaviorBroke
* [new branch] Sprint7/bugfix/fixWrongBehaviorBroke1.3 -> jcaseiro/Sprint7/bugfix/fixWrongBehaviorBroke1.3
* [new branch] Sprint8/Bugfix/SIMSwap-Master -> jcaseiro/Sprint8/Bugfix/SIMSwap-Master
* [new branch] Sprint8/Bugfix/addCheckForNullLinkFragment -> jcaseiro/Sprint8/Bugfix/addCheckForNullLinkFragment
* [new branch] Sprint8/Bugfix/fixErrorRedirectsPPEScreen -> jcaseiro/Sprint8/Bugfix/fixErrorRedirectsPPEScreen
* [new branch] Sprint8/Bugfix/fixNullPointerExceptionDropboxInfo -> jcaseiro/Sprint8/Bugfix/fixNullPointerExceptionDropboxInfo
即使我删除了遥控器并再次添加它,它也会继续发生。
这只发生在这个特定的遥控器上,但我相信我的本地git有问题,因为这个项目的其他开发人员都没有经历过这样的事情**。
git -c diff.mnemonicprefix=false -c core.quotepath=false fetch jcaseiro
From https://my.url.com/jcaseiro/project-android
* [new branch] Sprint7/bugfix/Fix_clickable_almost_there_screen -> jcaseiro/Sprint7/bugfix/Fix_clickable_almost_there_screen
* [new branch] Sprint7/bugfix/LogoutNotificationProblem -> jcaseiro/Sprint7/bugfix/LogoutNotificationProblem
* [new branch] Sprint7/bugfix/PromoTextAlbanianString -> jcaseiro/Sprint7/bugfix/PromoTextAlbanianString
* [new branch] Sprint7/bugfix/addCheckForNullLinkFragment -> jcaseiro/Sprint7/bugfix/addCheckForNullLinkFragment
* [new branch] Sprint7/bugfix/fixPPEErrorRedirects -> jcaseiro/Sprint7/bugfix/fixPPEErrorRedirects
* [new branch] Sprint7/bugfix/fixWrongBehaviorBroke -> jcaseiro/Sprint7/bugfix/fixWrongBehaviorCloudBroker
* [new branch] Sprint7/bugfix/fixWrongBehaviorBroke1.3 -> jcaseiro/Sprint7/bugfix/fixWrongBehaviorCloudBroker1.3
* [new branch] Sprint8/Bugfix/SIMSwap-Master -> jcaseiro/Sprint8/Bugfix/SIMSwap-Master
* [new branch] Sprint8/Bugfix/addCheckForNullLinkFragment -> jcaseiro/Sprint8/Bugfix/addCheckForNullLinkFragment
* [new branch] Sprint8/Bugfix/fixErrorRedirectsPPEScreen -> jcaseiro/Sprint8/Bugfix/fixErrorRedirectsPPEScreen
* [new branch] Sprint8/Bugfix/fixNullPointerExceptionDropboxInfo -> jcaseiro/Sprint8/Bugfix/fixNullPointerExceptionDropboxInfo
出于提供信息的目的,我使用SourceTree,但通过命令行执行此操作具有完全相同的效果。
我已经搜索了很多内容,但是没有找到答案......
答案 0 :(得分:2)
如果您在Windows上使用git,则会遇到以下问题:
查看您的回购邮件any
下的内容,了解发生了什么。将此与.git/refs/remotes/
进行比较。最好不要直接触摸那些git ls-remote
文件,而是使用git命令对它们进行操作,这样就不会破坏本地存储库。
如果分支已重命名为其他情况,则需要清理git refs,例如
.git
对于每个被删除并在每次提取时重新创建的分支,您应该重复此操作。如果文件夹的大小写发生了变化,您可能需要详尽地git update-ref -d Sprint8/Bugfix/SIMSwap-Master
整个refs文件夹。 (我刚刚为大约200个分支做了这个 - 我在fetch输出上运行了一个vim宏来生成200个命令 - 据我所知,没有一个选项递归git update-ref -d
一个文件夹refs。)下一次获取将最后一次获得任何重命名的分支,但随后的提取将不再获得该分支。
如果分支没有被重命名,但实际上存在多次只是区别大小,你应该要求创建分支的开发人员删除额外的分支,这样就没有只有大小写不同的分支。 每次获取都会看到相同的分支,直到不再有重复的分支只有大小写不同。
在Windows git bash上,您可以尝试使用以下命令列出仅按大小写不同的所有分支:
git update-ref -d