我有一个名为的项目Proyect
,它有三个 ( 3 ) 分支:
master
(男)sdev
(小号)test
( T )
目前是这样的:
initial commit
↓
↓
↓ merge test into master
↓ checkout -b sdev master
↓ ↓
↓ ↓
M------*------------------------------* # HEAD
\ / \
\ / \
\ / \
T-------\--------\--------------* # commits behind master
\ \
\ \
S-*--*---*---------* # commits behind test behind master
↑ ↑ ↑
↑ ↑ ↑
↑ ↑ ↑
↑ ↑ merge test into sdev
↑ ↑
↑ ↑
↑ commit 2 que quiero pushear directamente a master
↑
↑
commit 1 que quiero pushear directamente a master
我想做但我不知道的是执行merge
特定的 delcommit 1
并直接commit 2
分支sdev
到分支master
而不影响commits
后续分支sdev
中的任何内容test
,也就是说,我想要这样的东西:
M------*------------------------------*-*--* # HEAD
\ / \ ________________↑ ↑
\ / \ / _________________↑
\ / \ / /
T-------\-------*-*------------------* # commits behind master
\ / /
\ / /
S-*--*---*--------------* # commits behind test behind master
我只需要使用git cherry-pick
首先
sdev
:我用一个简单的方法搬到了分支git checkout sdev
第二:我用一个简单的:查找了
SHA-1
分支提交的唯一标识符,这给了我:sdev
git log --pretty=oneline
第三:我回到了分支
master
(这是我想要执行的地方merge
)第四:然后我开始执行樱桃采摘
可以通过添加选项来取消樱桃采摘
--abort