为什么在中止由于引入更改而触发的合并时GIT不会清理?

时间:2012-04-11 16:49:09

标签: git tortoisegit git-pull git-gui

我的团队最近在GIT遇到了很多麻烦,因为中止拉动命令。

如果用户没有对索引进行本地修改并进行了拉动,我看到git尝试开始将合并应用到master并中止。然后整个结账处于一个几乎无法恢复的可怕状态。在过去,我认为GIT会在尝试合并之前运行某种检查来识别这些问题。

即使有一个干净的状态(没有提交),我已经看到同样的事情至少随机发生一次。我知道如果没有变基,你可能会被迫在你拉动时解决合并冲突,但这不是发生的事情。

我们正在使用gitolite。我主要使用命令行,还没有遇到这些问题。团队的其他成员正在使用git-gui或1个案例TortoiseGit。

git-gui版本0.13.GITGUI
git version 1.7.8.msysgit.0
Tcl / Tk版本8.5.1
TortoiseGit 1.7.6.0

我们没有尽可能多地与分支机构合作,但觉得这应该有效 为什么GIT允许你在它将要进行训练失败时试图拉动?
为什么GIT不会彻底中止?

1 个答案:

答案 0 :(得分:1)

“git pull”与“git fetch + git merge”相同。所以,当git中止时,它就是合并。

当git尝试合并分支时,它会“尽可能”地执行。可以合并的文件被合并,并且无法自动合并的文件将保持“已修改”状态。开发人员必须手动检查文件以完成合并。

如果您在不完整的“git pull”(或“git merge”)之后更喜欢干净状态,您可以使用以下命令轻松返回到合并前的最后一个修订版:

git reset --hard my_local_branch

在你的情况下,我认为“my_local_branch”是“主人”。