我们面临的情况是我们为公司(GA)定制Web应用程序,并需要通过拉取请求将一些更改发送到git上游仓库。上游webapp是“AUS”。更改将在特定文件中,并在工作完成之前了解。所有工作(即使是AUS)都要在GA中捕获。
如果没有重复提交(来自cherry-pick
和rebase
)我们如何解决这个问题并保持清洁和易于理解?
我为此制定了一个“食谱”并希望分享它。
答案 0 :(得分:2)
我描述了配方,并显示了SourceTree看到的存储库状态的屏幕截图(因为它一次显示所有分支)。请注意,分支是“au”,“ga”和“master”,而不是配方中使用的GPT-99_description_AU,GPT-99_description_GA和GPT-99_description。
(你可能会问为什么在每个代码块之前还有一个额外的行和一段时间 - 这是我今天能够格式化它的唯一方法!)
$ git checkout master # or whatever base branch we will be using
$ git branch GPT-99_description
$ git branch GPT-99_description_AU
$ git branch GPT-99_description_GA
$ git checkout GPT-99_description_GA
$ git add <files>
$ git commit -m "GPT-99 - AUS files - ..."
也许不使用消息使用标记。稍后要看的东西。
$ git add <files>
$ git commit -m "GPT-99 - ..."
Switch to the AuScope branch
$ git cherry-pick SHA#1
$ git cherry-pick SHA#2
...
$ git rebase --onto GPT-99_description GPT-99_description_AU GPT-99_description_GA