2017-07-08 46 views
0

我对源树使用bitbucket。我想重新设置我的远程分支到以前的提交。bitbucket重新绑定上一次提交的分支

我在本地做了一些与远程合并的更改。遥控器处于非工作状态。我想简单地回到之前的状态。如果我在远程分支上重新绑定,我的本地版本可以运行,但远程版本仍处于错误状态。如果我试图推它会拒绝,因为Updates were rejected because the tip of your current branch is behind

我无法反向提交,因为发生了合并。我无法强制推送,因为按钮被禁用。

回答

0

首先,备份您的存储库:

将其复制并保存到某处。

二结帐您的远程分支:

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还通过强制分支HEAD指向先前的提交来重写历史记录(就好像未来的提交没有发生一样)。如果您已经检出文件(注意不要丢失您的工作!),您可能需要使用--hard选项运行此选项。

由于选项2和选项3重写了历史记录,因此您应该注意您的团队被通知变化。他们需要强制获取最新的分支(或者只是从源代码中重新克隆存储库)。一旦你所做的更改,并且您感到满意,推动更改您的远程分支:

git push origin mybranch --force 

或者干脆

git push --force 

,因为有一个上游分支已经建立。

+0

感谢您的详细回复! – user3032887

相关问题