文章目录[隐藏]
场景
cherry-pick用于选择单个提交并应用到当前分支的方法。它允许你在不合并整个分支的情况下选择单个提交并将其应用到当前分支。
- 感觉如果是单个提交的话必须要求每个提交记录的颗粒度足够细节,不然会产生不想要的东西。
基本使用流程
Git cherry-pick的基本使用流程如下:
- 在要使用cherry-pick的分支上,执行
git cherry-pick <commit-hash>
命令。这会将指定的提交应用到当前分支。 - 如果提交成功应用,则Git会显示一条类似于
[前缀] <commit-hash> <commit-message>
的消息,其中前缀是“+”(表示提交成功应用)或“-”(表示提交未成功应用)。 - 如果提交未成功应用,则可能存在冲突。这意味着你需要解决冲突,然后使用
git cherry-pick --continue
命令继续。如果无法解决冲突,则可以使用git cherry-pick --abort
命令取消cherry-pick操作。 - 一旦应用了所需的所有提交,就可以使用
git push
命令将更改推送到远程仓库。
注意:使用cherry-pick时,应尽量避免在提交之间插入其他提交。这可能会使历史变得混乱,并使得回滚更改变得困难。如果必须在提交之间插入其他提交,则建议使用rebase命令。
示例
假定有两个分支dev和master
- dev更改代码
git checkout dev
- dev
commit
提交代码
git add .
git commit -m "xxxx"
- dev查看最近提交记录
git log --oneline -3
- 切换到master分支
git checkout master
- cherry-pick
其中的HASH来自dev查看时的记录,或者直接dev分支名称也可以
git cherry-pick HASH
- 提交变更记录
git push
git cherry-pick如何进行代码评审?
简单说就是在分支上进行代码评审,分支评审没问题后在进行cherry-pick操作
如果你的团队要求使用cherry-pick的提交必须经过代码评审,则可以使用以下流程进行代码评审:
- 在执行cherry-pick之前,将提交提交到远程仓库的一个临时分支上。这样,其他人就可以通过浏览该分支上的提交来进行代码评审。
- 将代码评审请求发送给团队中的一名或多名成员,并请求他们审查该提交。
- 在代码评审完成后,如果代码被批准,则可以使用cherry-pick将提交应用到当前分支。
- 完成cherry-pick后,使用
git push
命令将更改推送到远程仓库。
注意:在使用cherry-pick时,应尽量避免在提交之间插入其他提交。这可能会使历史变得混乱,并使得回滚更改变得困难。如果必须在提交之间插入其他提交,则建议使用rebase命令。