1

Let's say I have following commits

cccc[recent]

bbbb

aaaa

Now I have bugs in cccc and I have rolled back to aaaa by

git reset --hard aaaa

and I have worked here,this all happened in bugs branch

Now when I try to push the cmmits to the bugs branch it is telling

! [rejected]        bugs -> bugs (non-fast-forward)
error: failed to push some refs to 'my url'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

I want to push my changes and remove the bbbb and 'cccc` commits.

how to do this?

user555
  • 1,489
  • 2
  • 15
  • 28

1 Answers1

2

Since you already pushed it you should do a git revert instead of a forced push

$ git revert cccc
$ git revert bbbb

This will leave the commits cccc and bbbb in the history and introduces new commits on top of them that revert the changes.

o-----o-----o-----o-----o
^     ^     ^     ^     ^
|     |     |     |     |
aaaa  bbbb  cccc  cccc' bbbb'

If you want revert bbbb and cccc in one commit do

$ git revert --no-commit bbbb
$ git revert --no-commit cccc
$ git commit -m 'Reverted commit bbbb and cccc'

If you want to revert the changes by doing a forced push

$ git reset --hard aaaa
$ git push -f

you should make sure that no other developer has already made commits on top of bbbb or cccc.

René Link
  • 48,224
  • 13
  • 108
  • 140