我从远程存储库remote_repo的主分支克隆了一个项目。我创建了一个新分支并提交到该分支。其他程序员将remote_repo推送到主分支。
remote_repo
我现在需要将我的本地分支RB重新定位到remote_repo的master分支。
RB
master
如何做到这一点?向终端键入什么命令?
向分支提交更改后,签出master并拉取它以从存储库获取其最新更改:
git checkout mastergit pull origin master
然后签出您的分支并将更改重新建立在master上:
git checkout RBgit rebase master
…或一行中的最后两个命令:
git rebase master RB
当尝试推回origin/RB时,你可能会得到一个错误;如果你是唯一一个处理RB的人,你可以强制推送:
origin/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并希望轻松完成的人
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中止重写。
git rebase --continue
git rebase --abort
步骤7:
git push --force-with-lease
发生了什么事?将更改推送到您的远程YourSect。--force-with-lease将确保在您重设基址时是否有其他开发人员传入的任何其他更改。这比强制推送非常有用。如果有任何传入的更改,请在推送更改之前获取它们以更新您的本地YourSect。
--force-with-lease
为什么需要推送更改?在适当的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 fetch origin master:master && git rebase 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 push --force
如果当前分支有很多提交,并且需要在rebase之前被压扁、修复和重写,那么交互式rebase就是正确的答案。当软件工程师说“在master/master之上进行交互式rebase,确保它看起来很棒,不必要的提交被压扁,提交消息被纠正”。
首先,检查git status并确保从功能分支开始。
git status
如果不在功能brach中,请尝试git checkout feature然后
git checkout feature
git fetch origingit rebase -i origin/master
很少有提交历史记录在请求基于master的rebase时准备好重新基于。在大多数情况下,现有的提交首先使用交互式rebase进行修订。