我有一个有很多分支的项目.
我想同时在几个分支上工作而不用来回切换git checkout.
除了在其他地方复制整个存储库之外,我有什么方法可以做到这一点?
我用git-new-workdir一个git存储库有两个工作树.这通常很有效,但是如果在两个工作树中检出相同的分支,我会在提交某些内容后得到有趣的行为:
结果:
显示的更改与我在A中提交的提交相反.例如,如果A中的提交添加了一行,则B中的"要提交的更改"显示此行已被删除.
这里发生了什么?这是git-new-workdir的已知限制吗?有没有办法避免这个问题?或者我应该避免在两个副本中签出同一分支时检入?
我也有兴趣了解内部发生的事情(我对git的内部结构知之甚少).
注意:
我发现git reset--hard如果B在A中提交之前没有未提交的更改,那么只需在B中运行就可以轻松解决问题
.
但是,如果我在A中提交B中存在未提交的更改,则真正未提交的更改会与提交中的伪造更改混合在一起,并且似乎没有简单的方法可以解开它们.因此问题.