让我们说,开发服务器中的git日志就像这样
aaaa - mine
bbbb - other dev
cccc - another dev
dddd - mine
eeee - another dev
ffff - mine
gggg - mine
基于该示例日志,如何在我提交的4个提交中创建一个补丁?以便将我的代码推送到登台服务器很容易。
因为如果我这样做
git show gggg > first.patch
git show ffff > second.patch
git show bbbb > third.patch
git show aaaa > fourth.patch
已经相当多了。 我们目前的流程就像这样
1)发展 2)提交并推送代码到dev服务器 3)经产品所有者测试和验证后,为分段创建补丁 4)将补丁应用于分期 5)经过QA测试验证后,推向生产。
那么如何组合我的提交来创建一个.patch文件?
答案 0 :(得分:2)
我要做的是使用交互式rebase来创建只有您的更改的分支。这里的大警告是,当您执行此操作时,您将创建一个新的,未经测试的代码状态。但这是你问题中固有的,所以如果它真的是你想做的事情:
我的建议是创建一个新的分支和rebase(保留所有现有的分支)。新分支将代表针对此推动量身定制的替代历史。
git checkout aaaa
git checkout -b staging_branch
git rebase --interactive gggg^
您将获得一个带有rebase待办事项列表的编辑器。删除除您之外的提交行。如果你想要你也可以压制你保留的提交(而不是挑选所有提交),但它并不重要。
从那里你可以将staging_branch
推送到您的登台服务器,或者如果您真的想要补丁,可以使用git diff
(或者,如果您压缩了提交,git show
)以获取它