how to re-order commits in Git non-interactively

What non-interactive git command(s) achieve the change from Before to After?






In your case, you can rebase interactive: git rebase -i HEAD~4 Then you can just reorder your picks

For example lets add three more files to our branch:

git add A
git commit -m "A"

git add B
git commit -m "B"

git add C
git commit -m "C"

Your shortlog will be:

$ git shortlog

If you want to reorder B with C:

$ git rebase -i HEAD~2
pick 1f9133d B
pick 33f41be C

You just re-order them to be:

pick 33f41be C
pick 1f9133d B

After you're done writing, see the shortlog:

$ git shortlog

You can do the same thing with all the commits by re-ordering. It is like what you see is what you get, which is pretty cool :)

Try this:

git reset --hard A
git cherry-pick C
git cherry-pick B
git cherry-pick D

There may be a way with git rebase, but I didn't really understand it.

See How do I run git rebase --interactive in non-interactive manner? for using git rebase --interactive in non-interactive manner.

Then, if you have formal criteria for reordering commits, you can script that, see for example Really flatten a git merge to reorder commits by the original commit date.

Need Your Help

return new RedirectResult() vs return Redirect() redirect actionresult

What is the difference between the following two controller ActionResult return statements:

How to get revision number from subversion using maven?

svn deployment maven-2 version-control

I'd like to put revision number on main page of webapp, how can i do that using maven?