【发布时间】:2021-01-20 01:00:56
【问题描述】:
嗨,我是 Git 初学者
我有两个提交 A 和 B。
B 是从 master 分支到我的分支的解决合并冲突提交(我从 master 拉出并得到合并冲突)。
我已经推送了这些提交。
我想将它们合并到一个提交中。
提交 A:我在 my_branch 中所做的更改的提交 提交 B:将 https://github.com/repo_name 的分支 'master' 合并到 my_branch 中
我该怎么做?
注意:我尝试了 git rebase -i HEAD~2 和 squash 提交(它显示了我的分支上的主提交和文件更改)
我用了 git commit --amend 这也没用
我还使用了 git rebase --onto B A 它实际上删除了所有解决合并冲突更改
git log --oneline graph B 输出:
* B (HEAD -> my_branch, origin/my_branch) Merge branch 'master' of https://github.ibm.com/repo_name into my_branch
|\
| * C Commit from master branch
| |\
| | * D Commit from master branch
| * | E Merge pull request #268 from other branch
| |\
【问题讨论】:
-
你能解释一下
A是什么吗?我想你想使用git reset --soft [some commit],然后是git commit,我只是不确定你是想使用A,A^(A的父级)还是其他一些提交(结果合并?) -
当你在一个合并提交上变基时,Git 有时会完全忽略它(因为一个合并提交有两个父级)。通常,您不要对具有一个或多个合并提交的历史记录部分进行变基。为什么要这样做?
-
如果可以:将
git log --oneline --graph B的输出添加到您的问题中 -
@LeGEC 添加了
git log --oneline --graph B的输出 -
谢谢。 1:我想
A将是B的第一个父母,对吗? 2:您想将A和B合并在一起,而忘记B曾经是C与A合并的结果吗?