目录
[TOC]
1.背景
比如有俩仓库,repo1和repo2,我希望将repo1中的特定几条commit应用到repo2上
2.操作方法
2.1 首先,将repo2克隆到本地
git clone <repo2_url>
2.2 进入repo2目录并添加repo1为远程仓库
cd <repo2_path>
git remote add repo1 <repo1_path>
此时可是使用git remote -v
查看有没有添加成功
2.3 拉取repo1的代码
git fetch repo1
2.4 查看repo1中的所有commit信息
git log repo1/master
- 其中
master
是分支的名称,一般也可能是main
找到需要应用到repo2的commit的所有SHA-1值,比如bcb78abf0eb8674232dd77a2c480ff3165usaf18
等等
最好按照时间顺序由远及近记录
然后q
退出
2.5 使用git cherry-pick命令将指定的commit记录应用到repo2上
git cherry-pick <SHA-1 value>
P.S. 也可以使用--no-commit
参数,这样就不会自动提交,而是会将修改放到暂存区,然后手动提交,达到合并多条commit的效果
git cherry-pick --no-commit <SHA-1 value>
2.6 最后,将修改推送到repo2
git push origin master
请注意,如果repo1和repo2中存在相同的文件或代码,则可能会发生冲突。在这种情况下,你需要手动解决冲突并提交更改。