1

We have a practice of squashing all commits of feature branch before merging it in master branch so that we will have one commit of feature branch in master. But accidentally I merged the feature branch into master without squashing. Is there anything than can be done to to resoove the issue.

Bhawna Joshi
  • 120
  • 9

1 Answers1

1

If you haven't made any commit on master after merging that feature branch, you could:

  • hard reset in your local repo master to the commit before that merge
  • squash and merge your feature branch
  • force push master and notify any other member working on that repository, for them to reset their own local master branch to that new master HEAD.

That is:

git reset --hard <SHA1 before merge>
# squash+merge
git push --force

I have 2 commits in master branch after the merge.
But those where my commits so I know what files I have changed.
Can I still reset my branch from the above method and then commit the next two changes again?

Yes: they can be cherry-picked and replayed on top of the new master HEAD.

Again, once you force push (git push --force) that new branch history, you need to make sure any other collaborator is aware the history change, and reset his/her own local master branch accordingly.

VonC
  • 1,042,979
  • 435
  • 3,649
  • 4,283
  • Thanks for the response. I have 2 commits in master branch after the merge. But those where my commits so I know what files I have changed. Can I still reset my branch from the above method and then commit the next two changes again? – Bhawna Joshi Feb 26 '19 at 06:56
  • @BhawnaJoshi Yes: you can actually cherry-pick (https://stackoverflow.com/a/1994491/6309, https://stackoverflow.com/a/881112/6309) those two commits once your reset + (quash,merge) is done. Just make a note of those two SHA1 before starting the process. – VonC Feb 26 '19 at 07:08
  • @BhawnaJoshi Also, don't forget to read https://stackoverflow.com/help/someone-answers, for this or your past questions. – VonC Feb 26 '19 at 07:10