跳至主要内容

解决 Git rebase 后的合并冲突

当你执行 git rebase 操作时,通常是在移动提交。正因为如此,你可能会遇到引入合并冲突的情况。这意味着你的两个提交修改了同一个文件中的同一行,而 Git 不知道应用哪个更改。

在使用 git rebase 对提交进行重新排序和操作后,如果发生合并冲突,Git 会通过以下消息打印到终端来告知你

error: could not apply fa39187... something to add to patch A

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".
Could not apply fa39187f3c3dfd2ab5faa38ac01cf3de7ce2e841... Change fake file

在这里,Git 告诉你哪个提交导致了冲突 (fa39187)。你有三种选择

  • 你可以运行 git rebase --abort 完全撤消 rebase。Git 会将你返回到 git rebase 被调用之前的分支状态。
  • 你可以运行 git rebase --skip 完全跳过该提交。这意味着有问题的提交引入的更改都不会被包含。你很少会选择此选项。
  • 你可以修复冲突。

要修复冲突,你可以按照 从命令行解决合并冲突的标准流程 进行操作。完成后,你需要调用 git rebase --continue 以便 Git 继续处理其余的 rebase。