我希望git checkout <commit>将工作树和索引都刷新到<commit>版本。但是,在某些情况下,它将保留工作树和索引中的当前更改。例如:
git branch br1
git branch br2
git checkout br1
<make change M1 to file foo>
git add foo
<make change M2 to file foo>
git checkout br2
现在,在分支中所做的所有工作树/索引更改br1都保留在分支中br2,因为git statusonbr2不会给出干净的消息。我猜这是因为文件头br1和br2原来有相同版本的文件foo,Git 可以自动检测到这一点。
问题:
- Git 什么时候决定不刷新工作树和索引?还有其他极端案例吗?