Skip to content

Instantly share code, notes, and snippets.

@jbub
Created June 12, 2013 15:31
Show Gist options
  • Save jbub/5766366 to your computer and use it in GitHub Desktop.
Save jbub/5766366 to your computer and use it in GitHub Desktop.
git squash last two commits into one
git rebase --interactive HEAD~2
# we are going to squash c into b
pick b76d157 b
pick a931ac7 c
# squash c into b
pick b76d157 b
s a931ac7 c
# after that just edit the commit message
# This is a combination of 2 commits.
# The first commit's message is:
b
# This is the 2nd commit message:
c
@JDR42
Copy link

JDR42 commented Sep 7, 2017

Great gist. FYI for convenience you can make the parameter of the fixup git alias optional and set it to a default value of 1 by replacing ${1} with ${1-1}, e.g.:
fixup = "!f(){ git reset --soft HEAD~${1-1} && git commit --amend -C HEAD; };f"

So then you can just do:
git fixup # merges the last commit into its parent

@ernierasta
Copy link

Thank you! this comments are golden!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment