我正在使用源码树的bitbucket。我想将我的远程分支重新定位到以前的提交。
我在本地做了一些与远程合并的更改。遥控器处于非工作状态。我想做一个简单的操作来返回到以前的状态。如果我在远程分支上重新建立基础,我的本地版本就可以运行了,但是远程版本仍然处于错误的状态。如果我试着推它,它会拒绝,因为Updates were rejected because the tip of your current branch is behind
我无法反向提交,因为发生了合并。我也不能强行按下,因为按钮被禁用了。
发布于 2017-07-08 19:48:52
首先,备份您的存储库:
将其复制并保存到某个位置。
第二,检查您的远程分支:
git checkout -b mybranch origin/mybranch -u如果要恢复到以前的状态,您有三种选择:
1. Revert - git revert <previous_commit>
2. Rebase - git rebase -i <previous_commit>
3. Reset - git reset <previous_commit>选项1是最安全的,因为它创建了一个恢复当前提交的新提交。
选项2通过从上一次提交开始交互式地重新建立提交的基址来重写历史。您可以有选择地选择哪些提交是新历史的一部分。
选项3还通过强制分支头部指向以前的提交来重写历史(就像未来的提交没有发生一样)。如果您已签出文件,则可能需要使用--hard选项运行此命令(注意不要丢失您的工作!)
由于选项2和选项3会重写历史,因此您应该注意将更改通知给您的团队。他们将需要强制获取最新的分支(或者只是从源重新克隆存储库)。完成更改并感到满意后,将更改推送到远程分支:
git push origin mybranch --force或者简单地说
git push --force因为已经设置了上游分支。
https://stackoverflow.com/questions/44985592
复制相似问题