作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有这样的历史:
A - B - M
\ /
C
A、B 和 M 是 master,C 在功能分支上。
我犯了两个错误:
我想 rebase ,所以它看起来像 A - B - C - M,C - M 可能压在一起。
我只找到了one question on the internet which actually looked quite similar to my case ,唯一的回应是“merge 没问题”。
我承认我仍然不是 100% 熟悉 rebase 语法,但是我告诉 git rebase 的任何组合,有或没有 -p
和/或 -i
,它要么说没有什么可以 rebase (noop),要么说它不起作用。
似乎合乎逻辑的选择是踩到 C 和 rebase -ip master
,但它并没有达到我预期的效果。
最佳答案
鉴于这段历史:
A - B - M
\ /
C
在 M 处,你软重置为 B,并提交,然后你将得到 A - B - M'
,这似乎是你想要的:
git checkout M
git reset B
git commit
分支的内容将保持不变,这些命令都不会改变这一点,只有 C
从历史记录中删除,使其看起来像一个直分支。
关于git:如何在 merge 后重新设置分支并保留 merge 提交的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40809584/
我是一名优秀的程序员,十分优秀!