Git合并冲突解决方案显示了我没有做过的分阶段更改

时间:2015-03-17 16:16:42

标签: git

假设以下情况。

  1. 我克隆了一个中央git repo和checkout master branch。
  2. 我在本地仓库中对master分支进行了一些更改并提交。
  3. 其他人在主分支,提交和推送到中央仓库中进行更改
  4. 我试着将中央回购的主分支拉到我的。
  5. 发生合并冲突。
  6. 然后,如果我发出git status命令,我发现很多变化(我认为其他人在第3步中完成)我没有做的更改会自动进行下一次合并提交在我解决冲突之后我会去做。

    我的问题是,在冲突解决和提交之后,我上面提到但未完成的上述变更是否会被回复,就好像是由我完成的一样?

2 个答案:

答案 0 :(得分:4)

每次进行合并时,都会创建一个提交。执行pull是有效的提取和合并操作(除非你是快进)

当合并成功而没有任何冲突时,您会看到直接提交(假设您没有快进)。但是当发生coflict时,git会将文件保留在冲突状态的coflict中。所有其他成功合并的文件都放在分段区域中。因此,当您完成冲突时,您可以将所有文件一起提交。

此提交被标记为合并提交,将来阅读历史记录的其他人应该知道此提交是由合并引起的,而不是由您做出的更改。

答案 1 :(得分:1)

如果您未在git config

中禁用某些设置,通常会发生这种情况

autocrlf 选项启用此选项后,您可以更改行结尾(如果它们不同)并修改文件。

autocrlf = false
# or with this
git config --global core.autocrlf true

下一个是文件模式,它在同一个

filemode = false

通常这就是问题所在。您可以在git配置文件中设置这些选项

.git/config