git cherry pick<commit>做什么?


当前回答

这有点像复制(从某处)和粘贴(到某处),但用于特定的提交。

例如,如果您想进行热修复,那么可以使用樱桃采摘功能。

在一个开发分支中进行樱桃采摘,并将其合并到一个发布分支中。同样,从一个释放树枝上摘樱桃给主人。沃伊拉

其他回答

cherry-pick是Git的一个功能。如果有人想在一个分支中向目标分支提交特定的提交,那么使用cherry-pick。吉特樱桃镐步骤如下。

签出(切换到)目标分支。gitcherry-pick<提交id>这里提交id是另一个分支的活动id。吉特樱桃镐9772dd546a3609b06f84b680340fb84c5463264f推到目标分支

参观https://git-scm.com/docs/git-cherry-pick

Git中的Cherry picking旨在将一些提交从一个分支应用到另一个分支。如果您犯了一个错误,并将更改提交到错误的分支,但不想合并整个分支,则可以这样做。你可以恢复提交,然后在另一个分支上重新选择。

要使用它,您只需要gitcherry-pick-hash,其中hash是来自其他分支的提交哈希。

有关完整程序,请参阅:http://technosophos.com/2009/12/04/git-cherry-picking-move-small-code-patches-across-branches.html

它将对当前分支应用特定的提交。

这意味着:

将添加此提交添加的所有文件将删除此提交删除的所有文件将合并此提交修改的所有文件。这意味着提交后的整个文件,而不仅仅是提交后的更改!

示例:考虑提交A

added newFileA
modified main:
+ import './newFileA'

提交B

added newFileB
modified main:
+ import './newFileB'

如果你在另一个分支上选择commit B,你将得到:

/newFileB
/main :
   import './newFileA'
   import './newFileB'

由于commit B包含newFileB和main,但没有newFileA,因此会导致错误,因此请谨慎使用。

这有点像复制(从某处)和粘贴(到某处),但用于特定的提交。

例如,如果您想进行热修复,那么可以使用樱桃采摘功能。

在一个开发分支中进行樱桃采摘,并将其合并到一个发布分支中。同样,从一个释放树枝上摘樱桃给主人。沃伊拉

如果要在没有提交ID的情况下进行合并,可以使用以下命令

git cherry-pick master~2 master~0

上面的命令将主服务器的最后三次提交从1合并到3

如果要对单个提交执行此操作,只需删除最后一个选项

git cherry-pick master~2

这样,您将合并从master结尾的第三个提交。