我正在我的本地分支上做一些改变,当我完成时,我把所有东西推到远程brach.在将分支与开发合并之前,我认为我应该做一个反思,因为其他人已经在那里合并了很多代码.当我做了rebase并解决了一些冲突时,我推到了远程分支.不幸的是,我解决冲突的方式是错误的,所以现在我需要在rebase发生之前返回并将远程分支更新到新状态.
我尝试了什么
重置头部
git reset --hard HEAD @ {x} //其中x是rebase之前的头部
这工作并恢复我本地分支上的更改,但后来我不知道如何使远程分支更新,因为它不会创建可以推送到远程的新提交.
您不应该重写远程存储库的历史记录,因为如果
你不仅会遇到必须解决问题的问题,而且还有其他推动变革的人.因此,除非你能确定没有人拉动它,否则不要强行推动.
相反,你应该使用其中之一恢复提交
>> git revert HEAD@{y} # where HEAD@{y} is the faulty commit
Run Code Online (Sandbox Code Playgroud)
如果只有一个提交是混乱的,在合并的情况下.
如果有一个rebase将几个提交转换到master分支,你需要做
>> git revert --no-commit HEAD
>> git revert --no-commit HEAD~1
>> git revert --no-commit HEAD~2
...
>> git revert --no-commit HEAD@{x}
>> git commit -m "Sorry folks for the big mess I made"
Run Code Online (Sandbox Code Playgroud)
当所有的HEAD~y都在之间的提交HEAD@{x}和HEAD.
这将在一次大型提交中有效地撤消所有受影响的提交.
| 归档时间: |
|
| 查看次数: |
8270 次 |
| 最近记录: |