使用 SmartGit 解决 git 文件冲突:我们的 vs 他们的

Solve git file conflict using SmartGit: ours vs theirs

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

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

如果我打开 Conflict solver 然后我得到这样的东西:

但是我又不知道如何或做什么才能维持这两个变化,有什么建议吗?帮忙?

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

  1. 什么都不做,让文件未解析。不确定选择此选项会发生什么。
  2. 使用其他开发人员的更改作为 git 命令:git checkout --ours -- FILE
  3. 将我的更改用作 git 命令:git checkout --theirs -- FILE
  4. 如前所述,打开冲突解决程序。

你可能很好奇为什么我们在using my changes的时候用--theirs,而在using their changes的时候用--ours,这是因为你在做rebase,你正在将您的原始更改基于其他开发人员的更改。当你在做rebase的时候,就像把你的改动保存在一个临时文件中,然后把HEAD移动到远程分支的最新提交(其他开发者的改动),然后在当前重放你的改动分支,在这种情况下,您的更改变为 theirs.

既然你想保存两个更改,你应该解决所有的冲突手动mark the file as resolved然后继续变基。