Git: How to squash all commits on branch
I make a new branch from the master with:
git checkout -b testbranchI make 20 commits into it.
Now I want to squash those 20 commits. I do that with:
git rebase -i HEAD~20What about if I don't know how many commits? Is there any way to do something like:
git rebase -i all on this branch For git squash all commits in branch and to reset the index to master:
git checkout yourBranch git reset $(git merge-base master yourBranch) git add -A
git commit -m "one commit on yourBranch"Note: finding that origin branch isn't easy/possible with Git.
but the above method is not a perfect one because it has a list, where the branch is coming.
so there is a way for that you will need to use:
git push --forceFor the reset, you can do
git reset $(git merge-base master $(git rev-parse --abbrev-ref HEAD))it automatically uses the branch you are currently on.