我从远程存储库remote_repo的主分支克隆了一个项目。我创建一个新分支,并将其提交给该分支。其他程序员将remote_repo推到主分支。
我现在需要将我的本地分支RB重置到remote_repo的主分支上。
如何做到这一点?在终端上输入什么命令?
我从远程存储库remote_repo的主分支克隆了一个项目。我创建一个新分支,并将其提交给该分支。其他程序员将remote_repo推到主分支。
我现在需要将我的本地分支RB重置到remote_repo的主分支上。
如何做到这一点?在终端上输入什么命令?
当前回答
步骤1:
git fetch origin
步骤2:
git rebase origin/master
第三步:(修正任何冲突)
git add .
步骤4:
git rebase --continue
步骤5:
git push --force
其他回答
步骤1:
git fetch origin
步骤2:
git rebase origin/master
第三步:(修正任何冲突)
git add .
步骤4:
git rebase --continue
步骤5:
git push --force
在向分支提交更改后,签出master并从repo中获取其最新更改:
git checkout master
git pull origin master
然后签出你的分支,并在master上重新调整你的更改:
git checkout RB
git rebase master
...或者一行中的最后两个命令:
git rebase master RB
当试图推回原点/RB时,你可能会得到一个错误;如果你是唯一一个使用RB的人,你可以强制push:
git push --force origin RB
...如果git配置正确,则如下所示:
git push -f
首先从上游存储库中获取新的master,然后在此基础上重新构建你的工作分支:
git fetch origin # Updates origin/master
git rebase origin/master # Rebases current branch onto origin/master
更新:请参阅Paul Draper的回答,以获得更简洁的方法—最近的Git版本提供了一种更简单的方法来执行上述两个命令的等效操作。
git pull --rebase origin master
如果当前分支有很多提交,并且在重基之前需要压缩、修复和重写它们,那么交互式重基是正确的答案。当软件工程师说“rebase on top of master”时,他们通常的意思是“在origin/master顶部进行交互式rebase,确保它看起来很棒,不必要的提交被压掉,提交消息被纠正”。
首先,检查 Git的状态,并确保启动在功能分支。
如果不在功能分支中,请尝试git checkout功能 然后
git fetch origin
git rebase -i origin/master
很少情况下,提交历史已经准备好重基,就像请求在master之上重基一样。在大多数情况下,现有提交首先使用交互式rebase进行修改。