我已经完成提交并推送到远程分支而没有意识到它,现在我想远程撤消该提交而不丢失更改。我正在寻找StackOverflow和Google,但是根据谁写的信息,我发现的信息是不同的。
我想还原远程的最后一次提交,并保持本地的更改而不跟踪,以便能够将那些更改带到本地的另一个分支。
现在,如我所读,我将不得不做:
The DELETE statement conflicted with the REFERENCE constraint "FKqjpga9w6wp3qk26ox9pg252d9". The conflict occurred in database "MDHIS", table "dbo.tblOutboundMessage", column 'id_patient'.
我还读到我可以选择去提交另一个分支,这将使事情变成这样:
git revert HEAD
git stash -m "message"
git checkout branch
git stash apply
git add.
git commit -m "message"
git push
答案 0 :(得分:0)
您是对的,在这里采摘樱桃会很好,但我会建议我认为更简单的方法:
只需运行git rebase --onto other-branch master~1 master
(这表示“重新调整前一个master和master之间的提交范围(您的最新提交),然后将其重播到其他分支”
或者,如果您更喜欢摘樱桃,我相信流程如下:
git checkout master
git rev-parse HEAD
从master那里看到最后一个提交哈希,我们假装它是1234567
... git checkout other-branch
git cherry-pick -x 1234567
将提交1234567
应用于当前分支。根据上述说明进行基础调整或精心挑选后,您可以选择从主用户删除提交:
git checkout master
git reset HEAD --hard
(删除对master的最后一次提交)git push --force
(使用该分支的新历史记录来强制更新远程同步分支然后,在other-branch
上处理代码,并在完成本地工作后合并到master并推送