git merge --no-commit vs git cherry-pick --no-commit

whe*_*nov 34 git git-merge git-cherry-pick

有什么区别git merge --no-commitgit cherry-pick --no-commit

如果我遵循这两个命令后,历史上有什么不同吗?

gtu*_*rri 49

如果您提交git merge --no-commit,您实际上将获得合并提交.而在git cherry-pick --no-commit你获得单亲的提交之后.

因此,是的,这两个命令之间存在差异.

特别是如果你有类似的东西

A -- B -- C
 \        L HEAD
  \
   -- D -- E
Run Code Online (Sandbox Code Playgroud)

如果您cherry-pick提交E,则不会修改提交D.而如果你merge,你会得到两者.


Ahm*_*ani 9

虽然git-merge用于将两个或多个开发历史记录连接在一起,但git-cherry-pick用于应用某些现有提交引入的更改.

那么,一旦你执行git-merge后提交,Git将添加所谓的合并提交.另一方面,当cherry-pick(ing)提交时,git会将这些提交引入的更改应用到工作树的顶部(两个或多个分支之间没有融合).换句话说,Commits被克隆并放在你的分支之上.

看看Git Cherry-pick vs Merge Workflow,根据repo维护者的实际需求来解决差异.