在Android的gerrit ex:link中,要下载补丁,我会看到4个选项。
他们之间有什么区别?
以下是我对他们的看法。请澄清
我知道拉和结帐不同于樱桃挑选。但它们有何不同?
答案 0 :(得分:34)
你对第一个是正确的。以下是其余的:
结帐 :提取最新更改。你应该已经下载了这个repo。它不会合并这些新的更改,但会让您的工作目录反映出来。您可以稍后在闲暇时将它们合并。
拉 :提取更改并将合并 到本地分支同名。
Cherry-pick :提取提交并在当前本地分支上播放,因此创建一个全新的提交,恰好与它提取的提交具有相同的更改。
它们与git
中的实际含义略有不同。 checkout
和cherry-pick
不会自动获取更改。 checkout
只需将HEAD
带到您指定的提交,从而使工作目录与该提交完全一样。同样,cherry-pick
用于重放您已拥有本地访问权限的提交。
答案 1 :(得分:5)
使用git,您可以拥有自己的存储库版本。你与他人同步'库。使用fetch
更新远程引用,即。刷新别人得到的东西。使用checkout
切换到特定修订版。如果你刚刚开始使用它,你想要这样做。
现在,如果您已经关注了远程分支,则可能只需要更新本地分支。这是pull
为您所做的事情。它将远程分支中的所有更改应用于本地更改。如果您只是想要更新它,那么您需要这样做。
cherry-pick
允许您从存储库中的任何位置选择一个更改,并将其应用于您的本地分支。如果您出于任何原因在不同的分支上进行但仍需要进行特定更改,则非常方便。请注意,如果你在不推动改变的情况下挑选这种改变并不持久。它已经提交到您的本地存储库但不提供给远程存储库(尽管如此,它可能是您需要的)。
详细了解git基础知识,例如here
答案 2 :(得分:2)
结帐:您希望在依赖分支中的特定CHANGE时使用它。假设您的同事已经签入了一些API供您使用,您可以将这个CHANGE签出到新的本地分支机构并开始处理您的更改。
Cherrypick:您希望将特定的CHANGE应用于您的本地分支或特定的发布分支,然后您开始挑选。 想象一下,你的1.1版本中有一个修补程序,你想要将修复/ CHANGE应用到你的2.0分支,你可以简单地点赞它。 它将在包含修复程序的2.0分支中创建一个新的CHANGE。
这是一个图形表示: http://think-like-a-git.net/sections/rebase-from-the-ground-up/cherry-picking-explained.html