简化git例程';快速采摘樱桃到另一个树枝';

简化git例程';快速采摘樱桃到另一个树枝';,git,Git,我的存储库中有两个分支:“stable”和“master”。 有时候,我应该在“stable”中修复一个bug,然后将它选到“master”分支。 为此,我必须执行几个步骤:切换到“master”,找到一个commit并选择它,然后我必须切换回“stable”以修复下一个bug。 我如何简化这个程序? 是否可能?您可以选择几个提交git cherry pick 18795aedbc 5415dfeacb…,我建议通过提交更正所有错误,并在最后选择所有提交 事实上,如果您的分支非常不同,那么在另一

我的存储库中有两个分支:“stable”和“master”。 有时候,我应该在“stable”中修复一个bug,然后将它选到“master”分支。 为此,我必须执行几个步骤:切换到“master”,找到一个commit并选择它,然后我必须切换回“stable”以修复下一个bug。 我如何简化这个程序?
是否可能?

您可以选择几个提交
git cherry pick 18795aedbc 5415dfeacb…
,我建议通过提交更正所有错误,并在最后选择所有提交

事实上,如果您的分支非常不同,那么在另一个分支上重复签出是无法忍受的

您可以添加存储库的本地副本,并始终将其显示在主分支上,而原始回购始终显示在稳定分支上


在此场景中,您只需在存储库之间切换即可。

如果您可以在命令行中键入它,则可以编写脚本:

git checkout master && git cherry-pick stable && git checkout stable 
注意:
git cherry pick stable
将cherry选择位于稳定分支顶端的提交

如果您想要更通用的功能:

#An alias so we can get the current branch with `git current-branch`
git config --global alias.current-branch 'symbolic-ref --short HEAD'

git-cherry-pick-onto() {
   local original_branch=`git current-branch`

   git checkout "$1" &&\
   git cherry-pick "$original_branch" &&\
   git checkout "$original_branch"
}
然后,您可以(从stable)执行以下操作:


这将挑选当前分支中最新的提交到master(或任何作为参数提供的分支)。

Git非常容易编写脚本。你有没有考虑过写一个脚本来加快速度?是的,这是一个变体,但我想到了存在的一个,所以我写在这里。:-)希望有人知道存在的方法。是的,我知道这个特性,但它不适合我的场景,因为在每次错误修复之后,我必须将结果发送给测试人员。无论如何,谢谢你!
git-cherry-pick-onto master