我有一个本地分支my_branch
,是在克隆repo
之后创建的。我做了两次提交(首先是最近的提交):
我推了我的分店并进行了公关。它花了一段时间才获得批准,现在我不能干净地合并到origin/master
中了。
我想摆脱我的YAML updates
提交,重新运行在本地生成这些更改的过程,并在origin/master
上重播我的更改,以解决此过程中的所有冲突。
这是正确的方法吗?
用YAML updates
丢弃我的git reset --soft HEAD^
提交
git checkout master; git pull origin master
git checkout my_branch; git checkout origin/master config1.yaml; git checkout origin/master config2.yaml
重新运行过程以创建YAML更新
git add config1.yaml config2.yaml
git commit -m "Updating YAML files"
git rebase -i master
如果遇到合并冲突,我应该解决它们并运行git rebase --
continue
假设7.成功,git push -f
编辑:是否正在运行与上述相同的步骤,但交换了步骤4.和7.,等同于依次运行步骤1.至8.?
我通常会在询问之前尝试上述方法,但不想弄乱我的当地分行或PR。
答案 0 :(得分:2)
步骤看起来确实不错,但是无论如何,您陷入混乱的风险很小:
交换步骤4和7.是否等效于依次执行步骤1.到8。?
是:rebase无论如何都会更改提交的历史记录:因此在rebase之前或之后进行新提交不会有任何不利影响,最后一步(8)将保持为git push --force
。