自学内容网 自学内容网

cherry-pick使用

cherry-pick命令详解

无论项目大小,当你和一群程序员一起工作时,处理多个 Git 分支之间的变更都会变得很困难。有时,与其把整个 Git 分支合并到另一个分支,不如选择并移动几个特定的提交。这个过程被称为 “挑拣”, 即 Cherry-pick。

详细流程

  • 拉取远程变更到本地分支。使用 git fetch 远程源,在IDEA中可以设置多个远程分支。
    在这里插入图片描述
  • 回到要合并的分支。你可能会通过运行 git checkout 工作的分支 来做到这一点。
  • 找到要拉入分支的提交。转到 git log,为每条提交获取唯一的提交哈希值。
    • 找到你想要挑选的hash值
  • “Cherry-pick” 您想要加入该分支的提交。运行以下命令:git cherry-pick 。这将只把这个提交拉入当前分支。
  • (可选) 在某些情况下, 可能需要手动解决冲突.
  • 像往常一样推送这个分支: git push 远程源 分支名

具体命令

在 cherry-pick 命令的最简单形式中,你只需使用要集成到当前 HEAD 分支中的提交的 SHA 标识符即可。

要获取提交哈希值,可以使用 git log 命令:

git log --oneline

知道 commit 的哈希值后,就可以使用 cherry-pick 命令。

语法如下:

git cherry-pick <commit sha>

可以是多个

例如:

git cherry-pick  85c5532

这将把指定的更改专用于当前已签出的分支。

如果你想做进一步修改,也可以指示 Git 在你的工作副本中添加提交改动。

语法如下:

git cherry-pick <commit sha> --no-commit

如:

git cherry-pick 85c5532 --no-commit

如果您想同时选择多个提交,请添加它们的提交哈希值,中间用空格隔开:

git cherry-pick hash1 hash3

在挑选提交时,不能使用 git pull 命令,因为它会从一个版本库中获取提交并自动合并到另一个版本库中。cherry-pick 命令是专门用来避免这种情况发生的工具;取而代之的是使用 git fetch,它会获取提交但不应用它们。

实战

从 dev 挑选数个 commits 进行合并:

git cherry-pick  85c5532  366a196  53ebe44 --no-commits

然后, 可能第一个合并会出现冲突, 手动解决冲突, 并git add 具体文件或 git rm.

继续 cherry-pick:

git cherry-pick --continue

第二个提交可能没有冲突, 直接合并.

第三个提交可能又有冲突, 手动解决冲突, 并git add 具体文件git rm 文件

继续 cherry-pick:

git cherry-pick --continue

最后再执行 git cherry-pick --continue, 会提示你没有在运行的任务.

此时, 可以提交:

git push 远程源 分支名

原文地址:https://blog.csdn.net/Dcwjh/article/details/145209096

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!