我试图通过避免过多的合并提交来保持git历史的线性。因此,当我想首先提交新的更改时,我会尝试git pull
然后调用git commit
。 (顺便说一下,我不想使用git rebase
命令)
但git pull
经常因冲突而失败,我遇到两个案例:
1)Git建议在执行git pull
之前隐藏或提交我的更改 - 在这种情况下,我同意先提交然后调用git pull
。
2)Git拉动外部变化,我的工作树被污染:我的变化与外部变化混合 - ,这让我受苦。
问题是:为什么有时git选择#1选项但有时选择#2? 有没有办法让git总是选择案例#1?
如果重要,我使用TortoiseGit。
答案 0 :(得分:1)
This post描述了类似于选项#2的情况:
事实上,文件被拉了,最后被标记为本地修改,但事实并非如此。然后,我们需要手动还原未被用户修改的文件。
据我了解,所有因为错误致命:无法编写新的索引文件,git没有干净地退出。如果有一个发生,git pull
将以#2选项结束。否则,选项#1(如果存在合并冲突)。