在Git中,如何重新排序(更改)推送提交?

Ben*_*ein 6 git github

我有一个带有single(master)分支的存储库:

a > b > e > f > g > c > d
Run Code Online (Sandbox Code Playgroud)

事实证明,我需要更改cd(两个提交到目前为止的历史结束)更早发生,所以我有:

a > b > c > d > e > f > g
Run Code Online (Sandbox Code Playgroud)

一切都被推了.我知道我不应该推迟提交,所以我该怎么办?

Abi*_*ern 5

这是一个快速而肮脏的解决方案,不会改变历史记录:

  1. 用于git revert从分支中删除每个提交.
  2. 用于git cherry-pick按所需顺序重新应用提交.

推动这些变化.这使您可以在不更改历史记录的情况下更改提交的顺序.


Xha*_*Liu 5

没有git push -f. 如果这个存储库是在你和其他人之间共享的,那么你不应该做任何事情。如果这是您自己的存储库或者它在您自己的分支上,请使用git rebase -i <hash of a>,然后根据需要重新排序提交,然后git push -f.