1

我的团队最近在使用 GIT 时遇到了很多麻烦,因为 pull 命令中止。

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

即使处于干净的状态(无需提交),我也至少看到过同样的事情随机发生一次。我知道如果不重新设置基准,您可能会在拉取时被迫解决合并冲突,但这并不是正在发生的事情。

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

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

我们没有尽可能多地与分支机构合作,但感觉这应该是可行的。
为什么 GIT 允许您在火车失事时尝试拉动?
为什么 GIT 不能干净地中止?

4

1 回答 1

1

“git pull”与“git fetch + git merge”相同。因此,当 git 中止时,它处于合并状态。

当 git 尝试合并一个分支时,它会“尽可能”地进行。可以合并的文件被合并,不能自动合并的文件处于“都修改”的状态。开发人员必须手动检查文件才能完成合并。

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

git reset --hard my_local_branch

在您的情况下,我认为“my_local_branch”是“master”。

于 2012-04-11T17:54:46.653 回答