'git remote add upstream'有助于实现什么?

ben*_*n39 61 git github rebase

我正在阅读:https: //wiki.diasporafoundation.org/Git_workflow#Rebase_your_development_branch_on_the_latest_upstream

这是一个摘录:

您的存储库是最新的

为了从开发中继获取最新更新,请执行一次性设置,通过输入以下内容将主GitHub存储库建立为远程:

$ git remote add upstream git://github.com/diaspora/diaspora.git
Run Code Online (Sandbox Code Playgroud)

在最新上游重新启动您的开发部门

要使您的开发分支保持最新,请在上游主服务器的当前状态之上重新定义您的更改.看看什么是git-rebase?以下部分了解有关变基的更多信息.

如果您已经设置了上面详细说明的上游分支,以及一个名为100-retweet-bugfix的开发分支,那么您将更新上游,更新本地主服务器,并从中重新分配您的分支,如下所示:

$ git fetch upstream

$ git checkout master

$ git rebase upstream/master

$ git checkout 100-retweet-bugfix
Run Code Online (Sandbox Code Playgroud)

[确保在分支中根据需要提交所有内容]

$ git rebase master
Run Code Online (Sandbox Code Playgroud)

为什么在这种情况下需要添加"远程上游"?我不是刚才做的:

$ git checkout master

$ git pull origin master

$ git checkout 100-retweet-bugfix
Run Code Online (Sandbox Code Playgroud)

[确保在分支中根据需要提交所有内容]

$ git rebase master
Run Code Online (Sandbox Code Playgroud)

man*_*lds 70

维基是从分叉的回购角度谈论的.您可以从原点进行拉动和推动,这将是您的主要侨民回购的分支.要从此主仓库中获取更改,请在本地仓库中添加一个远程"上游",指向此原始并从中拉出.

所以"origin"是你的fork repo的克隆,你可以从中推送和拉动."上游"是主要仓库的名称,从中您拉动并保持更新分支的克隆,但您没有对其进行推送访问.


smp*_*kes 15

如果您有自己的origin,那么这很有用upstream.换句话说,您可能拥有自己的origin仓库,您可以进行开发和本地更改,然后偶尔合并upstream更改.您的示例与突出显示的文本之间的区别在于您的示例假定您正在直接使用上游存储库的克隆.突出显示的文本假设您正在处理自己的回购的克隆,可能原本是上游的克隆.


Anm*_*eep 10

让我们举个例子:您想为 django 做出贡献,因此您分叉了它的存储库。当您开发自己的功能时,其他人在原始存储库上完成了很多工作。因此,您分叉的代码不是最新的。设置远程上游并不时获取它可以确保您的分叉存储库与原始存储库同步。