我不知道我是如何设法进入这种状态的(*),但是我的tfs / default远程分支中有一些提交在TFS中不存在,所以我想摆脱它们。所以我的历史看起来像这样:
A--B--C--D tfs/default
...但是提交B和C实际上并不是TFS中的变更集。因此,当我签出tfs / default时,由于提交B和C,我与TFS不同步。不好。
我想我可以修复它,如果我能以某种方式将tfs / default远程重置为A并执行另一个“git tfs fetch”以结束实际历史记录:
A--D tfs/default
但我不确定该怎么做?
*)如果它有任何区别,我认为它涉及在B和C上使用“git tfs shelve”,可能后面跟着一些提交和“git tfs pull”。但我不确定。
答案 0 :(得分:2)
是的,你有一半的答案!您应该将tfs/default
重置为上一步并获取。在git中没有办法做到这一点(如果我知道的话),因为这不是正常情况,但我们仍然可以通过编辑git文件来做到这一点......这很容易!
如果您确定不想保留B
和C
提交(否则通过创建本地分支将其保存为临时),请执行以下操作:
.git
文件夹,查找文件/refs/remotes/tfs/default
A
这应该是好的!
编辑:也可以使用命令行git update-ref tfs/default SHAofcommitA