3

git pull在处理我没有处理的完全未触及的文件时,我经常看到以下错误。

Pull is not possible because you have unmerged files

很明显,git repo 中的冲突文件已更改。但我不明白为什么git pull不能覆盖这些未触及的文件 - 我没有触及这些文件?

我或我的团队可以做些什么来避免出现这些错误?

已编辑-连同解决方案,我想了解错误出现的原因。

为了清楚起见,其他团队成员正在处理其他文件(比如 xyz)。我正在研究一组不依赖 xyz 文件的单独文件。因此,如果我在很长一段时间后拉出 repo 更改而我的xyz方面没有任何更改,为什么这些文件中的冲突?

4

2 回答 2

3

用于git diff查看问题文件

查看此 git 备忘单以获取有用的命令

http://www.cheat-sheets.org/saved-copy/git-cheat-sheet.pdf

http://jan-krueger.net/wordpress/wp-content/uploads/2007/09/git-cheat-sheet-v2-back.svg

根据我自己的经验,有一些提示。我不确定他们是否 100% 正确)

  1. 与您的团队在并行线程上分工。尽量不要在同一个文件中工作。

  2. 尽量避免两个或更多人同时添加新文件的情况。当一个人添加新文件时,其他人应该尽快拉取

  3. 最后但并非最不重要的一点 - 让 git push 非常频繁。这将使您的项目 git 保持最新

于 2013-06-19T14:03:56.770 回答
1

由于git pull不提取单个文件,因此它的git merge阶段将停止以手动更正任何合并冲突。git merge和/或(本质上是跟随git pull的事实)是一个全有或全无的操作 - 您要么成功合并在两个(或所有)要合并在一起的分支上引入的更改,要么您不' t 合并其中任何一个。问题是当发生必须手动解决的冲突时 - 但在这种情况下,您处于中间状态,既没有完成并提交合并,也没有将其回滚到之前的状态。git pullgit fetchgit merge

您收到的消息表明您之前已经完成了 agit pull或 a git merge,它在中间停止,要求您手动解决一些您尚未完成的冲突,而是继续做其他事情,现在正在尝试做另一个git pull/git merge没有完成第一个。查看git status,并按照建议的方向解决您正在进行的合并问题或重置回非合并中间状态。

于 2013-06-19T14:25:50.660 回答