我从远程存储库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进行修改。