Git 拉取失败,有时会导致引入外部更改,但有时它只是要求先提交更改
Git pull fails and sometimes causes introducing external changes but sometimes it just asks to commit changes firstly
我试图通过避免过多的合并提交来保持 git 历史线性。出于这个原因,当我想首先提交新更改时,我尝试 git pull
然后调用 git commit
。 (顺便说一句,我不想使用 git rebase
命令)
但是git pull
经常因为冲突而失败,我遇到过两种情况:
1) Git 建议在执行 git pull
之前隐藏或提交我的更改 - 在这种情况下,我同意先提交然后调用 git pull
.
2) Git 提取外部更改,我的工作树被污染:我的更改与外部更改混合在一起 - 这让我很痛苦。
问题是:为什么有时git选择选项#1但有时选择#2?
有没有办法让 git 总是选择案例 #1?
如果重要我用 TortoiseGit。
This post 描述了类似于选项 #2 的情况:
事实是,文件无论如何都会被拉出并最终被标记为本地修改,但事实并非如此。然后我们需要手动还原未被用户修改的文件。
据我了解,都是因为错误fatal: unable to write new index file, git did exit cleanly。如果发生这种情况,git pull
将以选项 #2 结束。否则,选项 #1(如果存在合并冲突)。
我试图通过避免过多的合并提交来保持 git 历史线性。出于这个原因,当我想首先提交新更改时,我尝试 git pull
然后调用 git commit
。 (顺便说一句,我不想使用 git rebase
命令)
但是git pull
经常因为冲突而失败,我遇到过两种情况:
1) Git 建议在执行 git pull
之前隐藏或提交我的更改 - 在这种情况下,我同意先提交然后调用 git pull
.
2) Git 提取外部更改,我的工作树被污染:我的更改与外部更改混合在一起 - 这让我很痛苦。
问题是:为什么有时git选择选项#1但有时选择#2?
有没有办法让 git 总是选择案例 #1?
如果重要我用 TortoiseGit。
This post 描述了类似于选项 #2 的情况:
事实是,文件无论如何都会被拉出并最终被标记为本地修改,但事实并非如此。然后我们需要手动还原未被用户修改的文件。
据我了解,都是因为错误fatal: unable to write new index file, git did exit cleanly。如果发生这种情况,git pull
将以选项 #2 结束。否则,选项 #1(如果存在合并冲突)。