git - Git纠正分支和工作树不匹配
问题描述
跟进'<Branch>' 已在 git worktrees 中的 '</other/location>' 签出
当我的分支和工作树不匹配时,我收到“ Branch is already checked out at different worktree
”错误:
我现在必须使用git worktree remove
删除我的 1.2T 工作树,但我想知道将来修复它的最佳方法是什么。
我有如下分支和工作树设置:
/path/master
对应我的 gitmaster
分支/path/release-a
对应我的 gitrelease-a
分支/path/release-b
对应我的 gitrelease-b
分支
等等等等。多年来我一直这样,直到几天前我错误地单击并更改了 MS VS 中的工作树分支。现在我的分支和工作树是这样的:
/path/release-a
正在使用我的 gitrelease-b
分支/path/release-b
正在使用我的 gitrelease-b
分支
现在我无法在 MS VS 中将其改回。尝试在工作树中切换分支会让我:
fatal: '<branch>' is already checked out at '</other/location>'
除了git worktree remove
请,还有什么更好的方法。
解决方案
嗯,如果布局如您所述,您应该能够git switch release-a
在/path/release-a
. 您的问题是否反映了 MSVS 的输出git worktree list
或您在 MSVS 中看到的内容?
如果.git
元数据被弄乱了,您可以在两个工作树中创建虚拟分支(git checkout -b dummy-x
等dummy-y
),然后git switch release-...
在每个工作树中创建。如果工作树中有未保存的工作,则根据需要提交/存储。
如果 MSVS 将元数据存储在其他地方,这是一个不同的问题,大概只能在 MSVS 中解决。
推荐阅读
- json - 将 ABAP 数据转换为以 JSON-XML 格式表示它们的 iXML 对象
- ios - Firebase 推送通知对某些用户停止工作
- django - Django:有没有办法在搜索后重新聚合总和?
- android - 错误:使用 fullScreenIntent 需要 USE_FULL_SCREEN_INTENT 权限
- amazon-web-services - 能否在 EC2 用户数据中安装 AWS Logs 代理?
- java - 创建图像数组以传递给 imageDisplay 活动
- angular - Angular:动态路径路由问题
- nginx - nginx 日志:$upstream_response_time 大于 $request_time
- javascript - 如何将 2 个 javascript 代码合二为一?
- ibm-cloud - API-Connect 未在 Cloud Foundry 服务中打开或出现空白页面?