ewa*_*all 225
该git cherry-pick <commit>
命令允许您进行单个提交(来自任何分支),并且实质上,在您的工作分支中对其进行rebase.
Pro Git书的第5章比我更好地解释了它,完成了图表等; 寻找标题为"重新定位和樱桃采摘工作流程"的部分.(关于重印的章节也很好.)
最后,在另一个SO问题中,对于挑选与合并与变基有一些好评.
来源:https : //git-scm.com/book/en/v2/Distributed-Git-Maintaining-a-Project#Integrating-Contributed-Work
将引入的工作从一个分支转移到另一个分支的另一种方法是挑选它。Git 中的挑选就像是一次提交的变基。它采用提交中引入的补丁,并尝试在您当前所在的分支上重新应用它。如果您在一个主题分支上有多个提交并且只想集成其中一个,或者如果您在一个主题分支上只有一个提交并且您更愿意挑选它而不是运行 rebase,这将非常有用。例如,假设您有一个如下所示的项目:
如果你想将提交 e43a6 拉入你的主分支,你可以运行
$ git cherry-pick e43a6
Finished one cherry-pick.
[master]: created a0a41a9: "More friendly message when locking the index fails."
3 files changed, 17 insertions(+), 3 deletions(-)
Run Code Online (Sandbox Code Playgroud)
这会引入 e43a6 中引入的相同更改,但您会获得一个新的提交 SHA-1 值,因为应用的日期不同。现在你的历史看起来像这样:
现在您可以删除您的主题分支并删除您不想引入的提交。
如果BranchA尚未被推送到远程,那么您可以使用rebase
然后简单地重新排序提交merge
.最好在可能的情况下使用merge
,rebase
因为它不会创建重复的提交.
git checkout BranchA
git rebase -i HEAD~113
... reorder the commits so the 10 you want are first ...
git checkout BranchB
git merge [the 10th commit]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
116241 次 |
最近记录: |