Git cherry-pick 是什么,如何使用?

1. 简述

git 是我们每天都会用到的,分支相信大家也非常熟悉,本文给大家介绍一个十分好用的git命令。

git cherry-pick, 通过pick我们大概也能猜到,这是在选择,是的,git cherry-pick 完全简单的理解为”挑选”某个提交,git cherry-pick commitId 便会获取这个分支的提交的代码和相关信息,并作为一个全新的提交引入到你当前所在的分支上。

当我们需要在某个分支合并其他分支的某一次提交时,同时并不希望对整个分支进行合并,而是只希望将某一次提交合入到本地当前分支上,那么git cherry-pick commitId就派上用场了。

2. git cherry-pick

2.1 git cherry-pick commitId

基础用法

git branch
# 当前分支为 test
git log 
# 此时会出现test分支的提交记录,假设此时你想要将
# test分支的commitId为123456的提交合并到sprint分支
git checkout sprint
git cherry-pick 123456
# 此时便已经将这个commit合并到sprint分支了
git log
# 通过git log 便可以看到

假设以下场景:

  1. 9点从test分支切出了sprint-9分支,
  2. 但是10点我在test分支上提交了需要sprint-8的代码(临时增加的需求)

因此这时候test分支和sprint-9分支的代码就不一致了。
当然,如果10点在test分支上修改的代码 sprint-9 不会涉及到,那么在之后合并的时候自然不会冲突,那么也没什么关系。

但是,为了以防万一,谁都无法保证上述情况不会发生,因此这里选择将test分支的commit同步到sprint-9上,使用 git cherry-pick commitID 便可以实现

git cherry-pick commitID

这里的 commitId 就是10点在test分支上提交的Id,这时候你就会发现,这个提交记录就会被同步到sprint-9分支上。

2.2 git cherry-pick -n commitId

git cherry-pick 会自动提交,如果不想git cherry-pick自动进行提交,则加参数-n即可
此时,git cherry-pick -n commitId 只是将这个 commitId 的代码合并到了当前分支,但是不会进行提交,可以在修改完成后 commit 提交

2.3 git cherry-pick -e commitId

如果希望在 git cherry-pick 后重新编辑提交信息,则使用 git cherry-pick -e commitId 命令,此时可以重新编辑提交信息

猜你喜欢

转载自blog.csdn.net/qq_41800366/article/details/107067991