合并冲突

  • 经常发生
  • 学习解决冲突很难
  • 熟能生巧
  • 修复冲突后强制推送。小心处理!

合并冲突工作流示例

  1. 检出一个新分支并编辑 conflicts.rb。添加 “Line4” 和 “Line5”。
  2. 提交并推送。
  3. 查看 main 并编辑 conflicts.rb。在 “Line3” 下方添加 “Line6” 和 “Line7”。
  4. 提交并推送到 main
  5. 创建一个合并请求并观察它失败。
  6. 使用 main 重新定义我们的新分支。
  7. 修复 conflicts.rb 文件的冲突。
  8. 暂存文件并继续变基。
  9. 强制推送更改。
  10. 最后继续合并请求。
git checkout -b conflicts_branch

# vi conflicts.rb
# Add 'Line4' and 'Line5'

git commit -am "add line4 and line5"
git push origin conflicts_branch

git checkout main

# vi conflicts.rb
# Add 'Line6' and 'Line7'
git commit -am "add line6 and line7"
git push origin main

在 Web UI 上创建合并请求,并显示冲突警告。

git checkout conflicts_branch
git fetch
git rebase main

# Fix conflicts by editing the files.

git add conflicts.rb
# No need to commit this file

git rebase --continue

# Remember that we have rewritten our commit history so we
# need to force push so that our remote branch is restructured
git push origin conflicts_branch -f

注意