gerrit-git(pull vs checkout vs cherrypick)这是做什么用的?

在Android的gerrit ex:链接中,要下载补丁,我看到4个选项。

  1. 回购下载
  2. 退房
  3. 樱桃采摘

它们之间有什么区别?

这就是我对它们的看法。 请澄清

  1. repo download->下载完整的源代码(项目中所有git repos的源代码),直到提交
  2. 结帐->不知道是什么。
  3. 拉->不知道它做什么?
  4. cherry-pick->它尝试仅下载此更改并将其合并到源代码中。

我知道pull和checkout与Cherry-pick不同。 但是它们有什么不同?

mk.. asked 2020-08-12T07:16:52Z
3个解决方案
37 votes

您对第一个是正确的。 这里是其余的:

  1. 结帐:获取最新更改。 您应该已经下载了此仓库。 它不会合并这些新更改,但会使您的工作目录反映出来。 您可以稍后将它们合并。

  2. 提取:获取更改并将其合并到同名的本地分支中。

  3. Cherry-pick:获取提交并将其在当前本地分支的顶部播放,从而创建一个全新的提交,恰好与获取的提交具有相同的更改。

它们与git中的实际含义略有不同。checkoutcherry-pick不会自动获取更改。 checkout只需将HEAD提交到您指定的提交,即可使工作目录与该提交完全相同。 同样,cherry-pick用于重播您已经可以本地访问的提交。

Akash Agrawal answered 2020-08-12T07:17:16Z
5 votes

使用git,您可以拥有自己的版本库。 与他人的存储库同步。 使用cherry-pick,您可以更新远程引用,即。 刷新别人得到的。 使用checkout,您可以切换到特定版本。 如果您刚开始使用它,那么您想这样做。

现在,如果您已经在跟踪远程分支,则可能只需要更新本地分支即可。 这就是cherry-pick为您所做的。 它将远程分支中的所有更改应用于本地分支。 如果您已经在使用它,则只需要更新即可。

cherry-pick使您可以从存储库中的任何位置选择一项更改,并将其应用于您的本地分支。 如果您出于任何原因而在其他分支上,但仍需要进行特定更改,这将很方便。 请注意,如果您在不推动该更改的情况下进行选择,那么该更改将不会持久。 它已提交给本地存储库,但没有提交给远程服务器(不过,在某些情况下可能是您需要的)。

在此处查看有关git基础的更多信息

fejese answered 2020-08-12T07:17:51Z
2 votes

结帐:您要在依赖于分支中的特定CHANGE时使用它。 说您的同事已经签入了一些API供您使用,您可以将CHANGE签出到新的本地分支机构并开始进行更改。

Cherrypick:您要对本地分支或特定发行分支应用特定的更改,然后进行Cherrypick。想象一下,您在1.1版本中有一个补丁修复程序,并且想将该修复程序/ CHANGE应用于您的2.0分支,您可以简单地选择它。它将在包含该修复程序的2.0分支中创建一个新的CHANGE。

这是图形表示:[http://think-like-a-git.net/sections/rebase-from-the-ground-up/cherry-picking-explained.html]

Matt answered 2020-08-12T07:18:22Z
translate from https://stackoverflow.com:/questions/26460415/gerrit-git-pull-vs-checkout-vs-cherrypick-which-is-for-what