如何将本地分支重新定位到远程主

我从远程存储库remote_repo的主分支克隆了一个项目。我创建了一个新分支并提交到该分支。其他程序员将remote_repo推送到主分支。

我现在需要将我的本地分支RB重新定位到remote_repomaster分支。

如何做到这一点?向终端键入什么命令?

1370690 次浏览

向分支提交更改后,签出master并拉取它以从存储库获取其最新更改:

git checkout mastergit pull origin master

然后签出您的分支并将更改重新建立在master上:

git checkout RBgit rebase master

…或一行中的最后两个命令:

git rebase master RB

当尝试推回origin/RB时,你可能会得到一个错误;如果你是唯一一个处理RB的人,你可以强制推送:

git push --force origin RB

…或如下,如果您已正确配置git:

git push -f

首先从上游存储库获取新的master,然后在此基础上重新构建您的工作分支:

git fetch origin            # Updates origin/mastergit rebase origin/master    # Rebases current branch onto origin/master

更新:请参阅Paul Draper的回答以获得更简洁的方法来执行相同的操作-最近的Git版本提供了一种更简单的方法来执行上述两个命令的等效操作。

git pull --rebase origin master

备注:如果您已经对rebase有了广泛的了解,那么请使用下面的一行进行快速rebase。解决方案:假设你在你的工作分支上,你是唯一在工作的人。

git fetch && git rebase origin/master

解决任何冲突,测试您的代码,提交并将新更改推送到远程分支。

                            ~:   For noobs   :~

以下步骤可能会帮助任何刚接触git rebase并希望轻松完成的人

步骤1:假设此时没有提交和更改要在Your布兰奇上进行。我们正在访问Your布兰奇。

git checkout YourBranchgit pull --rebase

发生了什么事?提取在您的分支上工作的其他开发人员所做的所有更改,并在其上重新生成您的更改。

步骤2:解决出现的任何冲突。

步骤3:

git checkout mastergit pull --rebase

发生了什么事?从远程主机拉取所有最新的更改,并在远程主机上重定向本地主机。我总是保持远程主机干净并准备好发布!而且,更喜欢只在本地主机或分支上工作。我建议这样做,直到你掌握git更改或提交。注意:如果您不维护本地master,则不需要此步骤,相反,您可以直接在本地分支上直接执行获取和重新定位远程master。正如我在开始的单步中提到的。

步骤4:解决出现的任何冲突。

步骤5:

git checkout YourBranchgit rebase master

发生了什么事?发生在master上

步骤6:如果有冲突,请解决任何冲突。添加已解决的冲突后,使用git rebase --continue继续重写。您可以随时使用git rebase --abort中止重写。

步骤7:

git push --force-with-lease

发生了什么事?将更改推送到您的远程YourSect。--force-with-lease将确保在您重设基址时是否有其他开发人员传入的任何其他更改。这比强制推送非常有用。如果有任何传入的更改,请在推送更改之前获取它们以更新您的本地YourSect。

为什么需要推送更改?在适当的rebase或如果有任何冲突解决后重写远程YourSect中的提交消息?然后您需要将您在本地存储库中解决的更改推送到YourSect的远程存储库

Yahoooo…!你成功地完成了重置。

你也可以考虑这样做:

git checkout mastergit merge YourBranch

何时以及为什么?如果您和其他共同开发人员完成了更改,请将您的分支合并到master。当您以后想在同一分支上工作时,这使YourSect与master保持同步。

                            ~:   (๑ơ ₃ ơ)♥ rebase   :~

git fetch origin master:master拉取最新版本的master,而无需检查它。

所有你需要的是:

git fetch origin master:master && git rebase master👌

1.先更新主…

git checkout [master branch]git pull [master branch]

2.现在用master分支重新构建源分支

git checkout [source branch]git rebase [master branch]git pull [source branch] (remote/source branch)git push [source branch]

如果远程上的源分支尚不存在,则执行以下操作:

git push -u origin [source branch]

"瞧…"

步骤1:

git fetch origin

步骤2:

git rebase origin/master

第3步:(修复任何冲突)

git add .

步骤4:

git rebase --continue

步骤5:

git push --force

如果当前分支有很多提交,并且需要在rebase之前被压扁、修复和重写,那么交互式rebase就是正确的答案。当软件工程师说“在master/master之上进行交互式rebase,确保它看起来很棒,不必要的提交被压扁,提交消息被纠正”。

首先,检查git status并确保从功能分支开始。

如果不在功能brach中,请尝试git checkout feature然后

git fetch origingit rebase -i origin/master

很少有提交历史记录在请求基于master的rebase时准备好重新基于。在大多数情况下,现有的提交首先使用交互式rebase进行修订。