如何使用远程主服务器重新定义本地分支

时间:2011-10-28 12:39:35

标签: git git-rebase

我从远程存储库remote_repo的主分支克隆了项目。我创建了新的分支,我承诺了那个分支。其他程序员推到remote_repo主分支。我现在需要将我的分支RB重新绑定到remote_repo主服务器上。这该怎么做 ?键入终端的命令是什么?

8 个答案:

答案 0 :(得分:1064)

首先从上游存储库中获取新主服务器,然后在以下位置重新绑定您的工作分支:

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

更新:请参阅Paul Draper's answer以获得更简洁的方法 - 最近的Git版本提供了一种更简单的方法来完成上述两个命令的等效操作。

答案 1 :(得分:717)

git pull --rebase origin master
# where --rebase[=(false|true|merges|preserve|interactive)]

答案 2 :(得分:148)

在提交给您的分支的更改后,checkout master并从中获取以从repo获取更改:

git checkout master
git pull origin master

然后检查你的分支并在master上修改你的更改:

git checkout RB
git rebase master

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

git rebase master RB

答案 3 :(得分:80)

注意:如果您对rebase有广泛的了解,那么请使用低于一个衬垫进行快速变形。 的解决方案: 假设您在工作分支机构,并且您是唯一一个从事这项工作的人。

git fetch && git rebase origin/master

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

                            ~:   For noobs   :~

以下步骤可能有助于git rebase新手并且想轻松实现的任何人

第1步:假设此时没有对YourBranch进行提交和更改。我们正在访问YourBranch。

git checkout YourBranch
git pull --rebase

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

第2步:解决出现的所有冲突。

第3步:

git checkout master
git pull --rebase

发生了什么?从远程主服务器中提取所有最新更改并在远程主服务器上重新绑定本地主服务器。我一直保持远程主人清洁并准备好发布!而且,更喜欢只在本地工作。我建议这样做,直到你得到git更改或提交。 注意:如果不维护本地主服务器,则不需要执行此步骤,而是直接在本地分支上直接执行提取和重新绑定远程主服务器。正如我在开始时单步提到的那样。

第4步:解决出现的所有冲突。

第5步:

git checkout YourBranch
git rebase master

发生了什么事?主人身上的重新启动

第6步:如果存在冲突,请解决所有冲突。添加已解决的冲突后,使用git rebase --continue继续rebase。您可以随时使用git rebase --abort中止变基。

第7步:

git push --force-with-lease 

发生了什么?将更改推送到远程YourBranch。 --force-with-lease将确保您在重新定位时是否有来自其他开发人员的YourBranch的任何其他传入更改。这非常有用,而不是强制推动。如果有任何传入的更改,则在推送更改之前获取它们以更新本地YourBranch。

为什么我需要推送更改?要在正确的rebase之后重写远程YourBranch中的提交消息或者是否解决了任何冲突?然后,您需要将在本地存储库中解决的更改推送到YourBranch的远程仓库

Yahoooo ...!你已经成功完成了变基。

您可能也在考虑这样做:

git checkout master
git merge YourBranch

何时以及为何?如果您和其他联合开发人员进行了更改,请将您的分支合并为主分支。当你想在以后的同一个分支上工作时,这使得YourBranch与master保持同步。

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

答案 4 :(得分:8)

步骤1:

git fetch origin

第2步:

git rebase origin/master

第3步:(解决任何冲突)

git add .

第4步:

git rebase --continue

第5步:

git push --force

答案 5 :(得分:5)

git fetch origin master:master提取最新版本的master,而无需检出。

因此,您所需要做的就是:

git fetch origin master:master && git rebase master

答案 6 :(得分:5)

1。首先更新Master ...

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

2.Now现在使用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]

“等等……”

答案 7 :(得分:0)

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

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

如果不在功能分支中,请尝试 git checkout feature 那么

git fetch origin
git rebase -i origin/master

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