解决 git 拉取中的合并冲突?

Resolving merge conflict in git pull?

我需要帮助解决 git 从 GitHub 中拉取的合并冲突,我做了以下操作 在我当前的分支上,我执行了以下操作

  1. git pull --rebase master
  2. git pull ssh:.....(从我的评论中提取更改)
  3. 一个文件中存在合并冲突
  4. 删除了所有冲突
  5. git add .
  6. 当我尝试使用 git commit --amend 提交回来时,我得到了错误

"fatal: you are in the middle of merge -- cannot amend"

我想再次修改相同的提交而不创建新的提交 ID。有办法吗?

鉴于您的历史记录如下:

B    C1   C2
o----o----o master
      \
       o feature
       F

您可以将更改从 feature 变基到您要将它们拉入的分支 (master) 以使其成为 "fast-forward merge",创建线性历史:

B    C1   C2   F
o----o----o----o master, feature

或者,在您描述的阶段,您可以 运行 git commit(没有 --amend)继续创建记录合并结果的提交:

B    C1   C2   M
o----o----o----o master
      \       /
        --o--  feature
          F

如果您希望有一个明确的合并提交来表示您合并了一个功能分支,您可以使用 --no-ff 标志重新设置然后合并,创建这样的东西:

B    C1   C2        M
o----o----o---------o master
           \       /
             --o--  feature
               F

选择哪种变体由您决定;这三个都有效。我通常更喜欢 rebase 功能分支,以避免必须在单独的提交(合并提交)中解决合并冲突。保持历史线性(不合并)与否是工作流程和品味的问题。