4

我在这里遇到问题,我不知道为什么,也许我做错了什么。我在同一个文件中工作,其他开发人员也在处理它。他告诉我文件已推送到存储库,好吧。在拉取更改之前,我进行了提交,因此我的更改被保存并与其他开发人员的更改合并,但令人惊讶的是,该文件给我带来了冲突,我不知道该怎么做才能不丢失其他开发人员的更改和地雷。如果我打开右键单击 => 解决冲突,我会得到这个窗口:

在此处输入图像描述

那里的每个选项意味着什么?哪一个更安全并保存两个更改?(开发商和矿山)

如果我打开Conflict solver,我会得到这样的东西:

在此处输入图像描述

但是我又不知道如何或做什么来保持这两个变化,有什么建议吗?帮助?

4

1 回答 1

8

我不使用 smartgit,但从屏幕截图中我可以告诉选项映射到 git 命令,如下所示:

  1. 什么都不做,留下未解决的文件。不确定选择此选项会发生什么。
  2. 使用其他开发人员的更改作为 git 命令:git checkout --ours -- FILE
  3. 使用我的更改作为 git 命令:git checkout --theirs -- FILE
  4. 正如您已经做的那样,打开冲突解决程序。

您可能会好奇为什么我们使用--theirswhen using my changes, while --ourswhen using their changes,这是因为您正在做rebase,您正在将您的原始更改重新基于其他开发人员的更改。当您这样做rebase时,就像将您的更改保存在一个临时文件中,并将 移动HEAD到远程分支的最新提交(其他开发人员的更改),并在当前分支上重播您的更改,在这种情况下您的更改变为theirs.

由于您想保存这两个更改,因此您应该手动解决所有冲突,mark the file as resolved然后继续变基。

于 2015-01-26T10:47:27.697 回答