bitbucket rebase 之前提交的分支
bitbucket rebase a branch on a previous commit
我正在使用带有源代码树的 bitbucket。我想将我的远程分支重新设置为之前的提交。
我在本地所做的一些更改已与远程合并。遥控器处于非工作状态。我想做一个简单的操作回到以前的状态。如果我在远程分支上变基,我的本地版本可以运行,但远程版本仍然处于错误状态。如果我尝试推送它会拒绝,因为 Updates were rejected because the tip of your current branch is behind
我无法撤消提交,因为发生了合并。我也不能强制按下,因为按钮被禁用了。
首先,备份您的存储库:
复制并保存在某处。
第二次检查您的远程分支:
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
因为已经设置了一个上游分支。
我正在使用带有源代码树的 bitbucket。我想将我的远程分支重新设置为之前的提交。
我在本地所做的一些更改已与远程合并。遥控器处于非工作状态。我想做一个简单的操作回到以前的状态。如果我在远程分支上变基,我的本地版本可以运行,但远程版本仍然处于错误状态。如果我尝试推送它会拒绝,因为 Updates were rejected because the tip of your current branch is behind
我无法撤消提交,因为发生了合并。我也不能强制按下,因为按钮被禁用了。
首先,备份您的存储库:
复制并保存在某处。
第二次检查您的远程分支:
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
因为已经设置了一个上游分支。