假设我有以下提交
cccc[recent]
bbbb
aaaa
现在我在cccc
中遇到了错误,我已经通过
aaaa
git reset --hard aaaa
我在这里工作过,这一切都发生在bugs
分支
现在,当我尝试将cmmits推送到bugs
分支时,它正在告诉
! [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.
我想推送我的更改并删除bbbb
和'cccc`提交。
怎么做?
答案 0 :(得分:2)
由于你已经推了它,你应该做git revert而不是强制推送
$ git revert cccc
$ git revert bbbb
这将在历史记录中保留提交cccc
和bbbb
,并在其上引入新的提交以恢复更改。
o-----o-----o-----o-----o
^ ^ ^ ^ ^
| | | | |
aaaa bbbb cccc cccc' bbbb'
如果您想在一次提交中还原bbbb
和cccc
$ git revert --no-commit bbbb
$ git revert --no-commit cccc
$ git commit -m 'Reverted commit bbbb and cccc'
如果您想通过强制推送来恢复更改
$ git reset --hard aaaa
$ git push -f
您应该确保没有其他开发者已经在bbbb
或cccc
之前提交了提交。