我有以下情况:
M
|
|
o X
| /|
|/ |
a b
| /
|/
o
我签出了b
,然后运行了git merge a
。在合并提交X
中解决了一些冲突。我还在X
内做了一些其他更改。
我想挤压X
和b
,然后将挤压壁垒基于M
。
目的是避免重新进行为构建X
而进行的更改。
(X+b)
|
|
M
|
|
o
|
|
a
|
|
o
关于如何执行此操作的任何想法?
答案 0 :(得分:3)
您可以:
# from X :
git reset --soft o # <- the parent commit of a and b
git commit # this will create 'b + X'
# then rebase :
git rebase M
重新设定基准时,您可能需要解决其他冲突。
另一种方法可以是:
M
和X
reset --soft + commit
创建单个提交# from commi M :
git merge X
# fix possible merge conflicts
git reset --soft M
git commit # commit the content of the merge
# as a single regular commit on top of M
答案 1 :(得分:0)
替代方法:
git checkout M
git merge --squash X
git commit -m "implemented feature X"