omerjerk omerjerk - 4 months ago 18
Git Question

Squash all my commits into one for GitHub pull request

I made a pull request on GitHub. Now the owner of the repository is saying to squash all the commits into one.

When I type

git rebase -i
Notepad opens with the following content:


# Rebase 0b13622..0b13622 onto 0b13622
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# These lines can be re-ordered; they are executed from top to bottom.
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
# Note that empty commits are commented out

I searched on Google but I do not understand how to do this.

Answer Source

Just a simple addition to help someone else looking for this solution. You can pass in the number of previous commits you would like to squash. for example,

git rebase -i HEAD~3 

This will bring up the last 3 commits in the editor.