git - 当我没有做任何更改时,git interactive rebase 中怎么会有冲突?

标签 git

我想在 git 中重写一个提交,所以我做了一个 git rebase -i 00112233 或类似的东西,我得到了 merge 冲突,而没有对将应用的提交进行任何更改。我输入 merge 命令, pop 编辑器,我接受其中的内容,但出现 merge 冲突。

我对git rebase -i的理解是HEAD设置为00112233然后00112233之后的commit >(它们已经一致,因为它们已被应用到当前状态)按照编辑器中指定的顺序应用(在这种情况下我没有改变)。我无法弄清楚该过程将如何导致 merge 冲突。

发生这种情况的方式有哪些?

最佳答案

如果所讨论的历史不是线性的,您可能必须重新应用您在第一次 merge 时采用的冲突解决方案。举个例子,如果历史是:

C:\Temp\TestRepo>git log --graph  --oneline
*   3fc0537 Merge branch 'branch'
|\
| * 79e29f9 branch
* | 0de3658 master
|/
* edead94 Initial revision

merge 提交 3fc0537 包含冲突:

C:\Temp\TestRepo>git log -1
commit 3fc053701a53a30a01469f560ad5057eab74d126
Merge: 0de3658 79e29f9
Author: Edward Thomson <ethomson@edwardthomson.com>
Date:   Thu Feb 6 17:55:59 2014 -0800

    Merge branch 'branch'

    Conflicts:
        file.txt

然后从 edead94 rebase 将产生 merge 冲突。

关于git - 当我没有做任何更改时,git interactive rebase 中怎么会有冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21617406/

相关文章:

git - 为什么我不能再运行 git 命令(错误 : no matching mac found: client hmac-md5. ..)

git - 用于解决 git 中的 merge 冲突的控制台 UI 工具...类似于 vimdiff 但 'easier'

git - 你如何复制并粘贴到 Git Bash

git - pull 请求与 merge 请求

git - 列出 Git remote 中所有活跃的分支

git - 将项目从 RCS 迁移到 git?

git - "git pull --all"可以更新我所有的本地分支吗?

git - 单个项目中的多个 .gitignore

python - 尝试 git Push 时 Bitbucket 错误日志

git - 如何获取远程分支中的版本并忘记我在工作目录中所做的更改