拣选 (BASIC ALL)
在 Git 中,您可以 拣选(cherry-pick) 现有分支的提交(一组更改),并将这些更改应用到另一个分支。拣选可以帮助您:
- 从默认分支到先前版本分支的反向移植错误修复。
- 从 fork 复制更改到上游仓库。
您可以从命令行拣选提交。在用户界面中,您还可以:
- 拣选来自合并请求的所有更改。
- 拣选单次提交。
- 拣选从 fork 到上游存储库。
通过命令行 Cherry-pick
以下说明如何从默认分支(main
)中拣选一个提交到不同的分支(stable
):
-
查看默认分支,然后基于它查看一个新的
stable
分支:git checkout main git checkout -b stable
-
改回默认分支:
git checkout main
-
进行更改,然后提交它们:
git add changed_file.rb git commit -m 'Fix bugs in changed_file.rb'
-
显示提交日志:
$ git log commit 0000011111222223333344444555556666677777 Merge: 88888999999 aaaaabbbbbb Author: user@example.com Date: Tue Aug 31 21:19:41 2021 +0000
-
识别
commit
行,并复制该行上的字母和数字字符串。此信息是提交的 SHA(安全哈希算法)。SHA 是此提交的唯一标识符,您在以后的步骤中需要它。 -
现在知道了 SHA,再次检查
stable
分支:git checkout stable
-
拣选提交到
stable
分支,并将SHA
更改为你的提交 SHA:git cherry-pick <SHA>