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

时间:2015-09-29 20:43:36

标签: git github

我有一个包含单个(master)分支的存储库:

a > b > e > f > g > c > d

事实证明,我需要更早发生cd(到目前为止的历史末尾的两次提交)中的更改,以便我能够:

a > b > c > d > e > f > g

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

2 个答案:

答案 0 :(得分:5)

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

  1. 使用git revert删除分支中的每个提交。
  2. 使用git cherry-pick按照您想要的顺序重新提交提交。
  3. 推送这些更改。这使您可以在不更改历史记录的情况下更改提交的顺序。

答案 1 :(得分:4)

如果没有print df Screen 0 Screen A 1 Screen A 2 Screen B 3 Screen C 4 Screen D 5 Screen D 6 Screen E #convert each last letter from column screen to number # https://stackoverflow.com/a/4528997/2901002 df['Screen Order'] = df['Screen'].apply(lambda x: ord(x[-1].lower()) - 96) #reordering columns df = df[['Screen Order', 'Screen' ]] print df Screen Order Screen 0 1 Screen A 1 1 Screen A 2 2 Screen B 3 3 Screen C 4 4 Screen D 5 4 Screen D 6 5 Screen E ,您无法重新排序推送的提交。如果您和其他人之间共享此存储库,那么您不应该做任何事情。如果这是您自己的仓库或它在您自己的分支上,请使用git push -f,然后根据需要重新排序提交,然后git rebase -i <hash of a>