git 如何将本地分支重新定基到远程主服务器上

mwg9r5ms  于 2023-02-02  发布在  Git
关注(0)|答案(9)|浏览(144)

我从远程仓库remote_repo的master分支克隆了一个项目,我创建了一个新的分支并提交到该分支,其他程序员将remote_repo推到master分支。
现在我需要将本地分支RB重定基到remote_repomaster分支上。
如何做到这一点?什么命令键入到一个终端?

s8vozzvw

s8vozzvw1#

首先从上游资源库获取新的master文件,然后在此基础上重新设置工作分支的基:

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

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

vd8tlhqk

vd8tlhqk2#

git pull --rebase origin master
xtupzzrd

xtupzzrd3#

提交对分支的更改后, checkout master并从repo中获取它的最新更改:

git checkout master
git pull origin master

然后 checkout 你的分支,并将你的修改重新定基到master

git checkout RB
git rebase master

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

git rebase master RB

当尝试推回到origin/RB时,您可能会得到一个错误;如果你是唯一一个在RB上工作的人,你可以强制push:

git push --force origin RB

...或者如果你已经正确配置了git,如下所示:

git push -f
e0uiprwp

e0uiprwp4#

    • 注意:**如果你已经有了关于变基的广泛知识,那么使用下面的一个行来快速变基。**解决方案:**假设你在你的工作分支上,并且你是唯一一个在上面工作的人。
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继续重新设定基址。您可以随时使用git rebase --abort中止重新设定基址。
    • 步骤7:**
git push --force-with-lease
    • 发生了什么?**将更改推送到远程YourBranch。--force-with-lease将确保在您重定基时是否有其他开发人员对YourBranch的任何其他传入更改。这比强制推送更有用。如果有任何传入更改,请在推送更改之前获取它们以更新本地YourBranch。
    • 我为什么需要推送更改?**要在适当的变基后或如果解决了任何冲突,则在远程YourBranch中重写提交消息?然后,您需要将在本地存储库中解决的更改推送到YourBranch的远程存储库
    • Yahoooo ...!您成功地完成了重定基准。**
    • 您还可能考虑:**
git checkout master
git merge YourBranch
    • 何时以及为什么?**如果您和其他合作开发人员完成了更改,请将分支合并到master中。这样,当您以后要在同一分支上工作时,YourBranch将与master保持最新。
~:   (๑ơ ₃ ơ)♥ rebase   :~
hfwmuf9z

hfwmuf9z5#

第一步:

git fetch origin

第二步:

git rebase origin/master

步骤3:(如果有冲突,请修复)

git add .

第四步:

git rebase --continue

第五步:

git push --force
9ceoxa92

9ceoxa926#

1.首先更新主数据...

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

2.现在使用主分支对源分支重新定基

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]

“瞧..."

xyhw6mcr

xyhw6mcr7#

git fetch origin master:master提取master的最新版本,而无需将其检出。
所以你需要做的就是:
git fetch origin master:master && git rebase master👌

qzwqbdag

qzwqbdag8#

如果当前分支有大量的提交,并且需要在重定基之前进行压缩、修复和重写,那么交互式重定基就是正确的答案。当软件工程师说“在master之上重定基”时,他们通常的意思是“在origin/master之上进行交互式重定基,并确保它看起来很棒,不必要的提交被压缩,提交消息被纠正”。
首先,检查git status并确保在feature分支中启动。
如果不在要素分支中,请尝试git checkout feature Then

git fetch origin
git rebase -i origin/master

很少情况下,当请求在主提交之上进行变基时,提交历史可以按原样进行变基。大多数情况下,现有的提交首先会使用交互式变基进行修改。

xqkwcwgp

xqkwcwgp9#

简单解决方案:

git checkout master && git pull
git checkout branch
git rebase master-〉解决冲突(如果有)
git add .
git rebase --continue
git push --force-with-lease origin branch

相关问题