Git pull失败,有时会导致引入外部更改,但有时它只是要求提交更改

时间:2015-05-05 14:19:57

标签: git git-merge git-pull

我试图通过避免过多的合并提交来保持git历史的线性。因此,当我想首先提交新的更改时,我会尝试git pull然后调用git commit。 (顺便说一下,我不想使用git rebase命令)

git pull经常因冲突而失败,我遇到两个案例: 1)Git建议在执行git pull之前隐藏或提交我的更改 - 在这种情况下,我同意先提交然后调用git pull
2)Git拉动外部变化,我的工作树被污染:我的变化与外部变化混合 - ,这让我受苦

问题是:为什么有时git选择#1选项但有时选择#2? 有没有办法让git总是选择案例#1?

如果重要,我使用TortoiseGit。

1 个答案:

答案 0 :(得分:1)

This post描述了类似于选项#2的情况:

事实上,文件被拉了,最后被标记为本地修改,但事实并非如此。然后,我们需要手动还原未被用户修改的文件。

据我了解,所有因为错误致命:无法编写新的索引文件,git没有干净地退出。如果有一个发生,git pull将以#2选项结束。否则,选项#1(如果存在合并冲突)。