I have tried multiple ways to squash my remote repo commits but didnt get it right. I want to squash them all and make it one . Below is the list of commits. Below is the summary of my pull request to upstream (which lists 7 commits). I want to list only one instead of 7.
Asked
Active
Viewed 2.9k times
9
-
Possible duplicate of [How to squash commits in git after they have been pushed?](https://stackoverflow.com/questions/5667884/how-to-squash-commits-in-git-after-they-have-been-pushed) – phd May 12 '18 at 12:17
2 Answers
40
git reset --soft HEAD~7
git add --all
git commit
git push --force
First, reset git index to before the commits you want to squash. Use --soft
so that git only resets the index and doesn't touch your working directory. Then create a commit as usual.

iBug
- 35,554
- 7
- 89
- 134
18
Another way is to use squash
- i other work interactive rebase
In order to do a git squash follow those steps:
# X is the number of commits you wish to squash, in your case 7
# In this interactive rebase there can be more that 7 commits if
# there was a merge in one of them
git rebase -i HEAD~X
Once you squash your commits - choose the s
for squash = it will combine all the commits into a single commit.

CodeWizard
- 128,036
- 21
- 144
- 167
-
Your answer is also correct. But I already had got a right answer. And there is no option to tick both the answers "Right". :) – A srinivas Jun 25 '19 at 13:58