Git:在分支分歧后,通过特定更改更新PR

时间:2019-05-26 21:29:30

标签: git

我有一个本地分支my_branch,是在克隆repo之后创建的。我做了两次提交(首先是最近的提交):

  • YAML更新
  • 主要变化

我推了我的分店并进行了公关。它花了一段时间才获得批准,现在我不能干净地合并到origin/master中了。

我想摆脱我的YAML updates提交,重新运行在本地生成这些更改的过程,并在origin/master上重播我的更改,以解决此过程中的所有冲突。

这是正确的方法吗?

  1. YAML updates丢弃我的git reset --soft HEAD^提交

  2. git checkout master; git pull origin master

  3. git checkout my_branch; git checkout origin/master config1.yaml; git checkout origin/master config2.yaml

  4. 重新运行过程以创建YAML更新

  5. git add config1.yaml config2.yaml

  6. git commit -m "Updating YAML files"

  7. git rebase -i master

    如果遇到合并冲突,我应该解决它们并运行git rebase -- continue

  8. 假设7.成功,git push -f

编辑:是否正在运行与上述相同的步骤,但交换了步骤4.和7.,等同于依次运行步骤1.至8.?

我通常会在询问之前尝试上述方法,但不想弄乱我的当地分行或PR。

1 个答案:

答案 0 :(得分:2)

步骤看起来确实不错,但是无论如何,您陷入混乱的风险很小:

  • 您的本地分支:在开始这些步骤之前,您始终可以用新的分支或标签对其进行标记。如果最终结果与预期不符,则可以重置为旧状态,然后重新开始
  • 您的PR分支:同样,如果新推送的PR分支出现问题,则可以强制推送旧的PR分支。
  

交换步骤4和7.是否等效于依次执行步骤1.到8。?

是:rebase无论如何都会更改提交的历史记录:因此在rebase之前或之后进行新提交不会有任何不利影响,最后一步(8)将保持为git push --force

>