在GIT中拆分提交

时间:2016-10-13 14:57:47

标签: git tortoisegit

我是Git的新手(我们正在使用TortiseGit),但这是我的问题。我有3个环境:Dev,QA和Production。客户端请求了两个更改,因此我在Dev中进行了两项更改,提交了它们并将其推送到QA环境。现在,该公司希望一个更改现在进入生产,下一个更改等待更改到另一个系统。我如何将部分提交推送到Prod?

2 个答案:

答案 0 :(得分:4)

提交自己是原子的,所以不能分裂或分解。但是,由于提交只是一组更改,我们可以拆分这些更改,然后创建单独的提交,只包含您希望为每个更改提供的更改。

这样做的一种方法是在您想要分割之前对提交进行软重置,然后分阶段进行每组更改并提交。

如果您在分解之前已经推送了提交。您需要执行强制推送,因为您要使用细分提交替换旧提交,因此请务必在进行任何更改之前进行提取。

同意PeeHaa,您希望为每个环境创建不同的分支,然后您可以选择所需的提交。

答案 1 :(得分:0)

我已经使用TortoiseGit 2.8拆分了master分支上的提交。有很多步骤,但它们的流程效果不错:

  1. 右键单击并显示日志“ TortoiseGit” =>“显示日志”。
  2. 在要拆分的提交之前上右键单击提交。
  3. 选择“在此基础上重新设置“主”(G)”
  4. 单击复选框以启用“强制变基”。右键单击之前的所有提交现在应显示在您单击的复选框上方。
  5. 右键单击要拆分的提交,然后选择“编辑”。这样会将其基准类型更改为“编辑”,而不是“选择”。
  6. 单击“开始变基”。进度栏启动后,将为您提供一个对话框,用于编辑“提交”消息。
  7. 单击以启用进度条下方的“编辑/拆分提交”复选框。
  8. 按下“修改”按钮。
  9. 取消选中不想包含在第一次提交中的文件。
  10. 提交第一次提交。然后,您将获得另一个提交,以提交第一次提交中未包含的文件。
  11. 所有文件提交完毕后,将出现一个对话框,要求再次提交。我不确定为什么会弹出此对话框,但我总是以不再提交来回应。