赞
踩
开发中有时需要将一个分支某些提交合并到另一个分支
例如现在要将 B 分支的一个 commit 合并到A分支:
git checkout B
git log
如:2c2f06d4d03e7e0b246b1c9c66d
git checkout A
git cherry-pick 2c2f06d4d03e7e0b246b1c9c66d
这样就将B分支的某个commit记录合并到了A分支了
如果在 B 分支中,对某个文件有多次提交记录
A 分支使用 cherry-pick 进行合并的时候,会把之前对该文件的修改一并合并过来
// B.txt B 分支
1、111(第一次commit)
2、222(第二次commit)
3、333(第三次commit)
A 分支只合并 B 分支第三次 commit的记录,会把前面的修改也合并过来,合并结果如下
// B.txt A 分支
1、111
2、222
3、333
我设想的是 A 只出现第三次提交的内容 但是不是 B 分支之前的内容全都有
比较符合预期,在没有对某个文件多次修改commit的情况下,只会合并对应的 commit 记录
目前还没有查找到关于出现这两种情况的原因,如果有知道的大佬,还希望在评论区指点一下
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。