Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git是保持多个遥控器同步的正确方法吗?_Git_Github_Branching And Merging - Fatal编程技术网

Git是保持多个遥控器同步的正确方法吗?

Git是保持多个遥控器同步的正确方法吗?,git,github,branching-and-merging,Git,Github,Branching And Merging,这是设置。我有一个主要的github存储库,我将其称为team/repo,还有一个分支,我将其称为me/repo。在me/repo上,我对功能分支做了一些更改(还有一个master分支),并在team/repo中创建对develop分支的拉取请求。从team/repo中的develope分支(包括我刚才提出的拉取请求)到me/repo上的master分支获得所有更改的正确方法是什么?实际上,没有“正确的方法”,不同的团队只采用不同的策略/流程 Gitflow分支管理模型? 听起来你可能在遵循分行

这是设置。我有一个主要的github存储库,我将其称为
team/repo
,还有一个分支,我将其称为
me/repo
。在
me/repo
上,我对
功能
分支做了一些更改(还有一个
master
分支),并在
team/repo
中创建对
develop
分支的拉取请求。从
team/repo
中的
develope
分支(包括我刚才提出的拉取请求)到
me/repo
上的
master
分支获得所有更改的正确方法是什么?

实际上,没有“正确的方法”,不同的团队只采用不同的策略/流程

Gitflow分支管理模型? 听起来你可能在遵循分行管理的模式。在Gitflow下,您有一个
分支,它是一个半不可接触的提交集,表示已发布代码的永久副本。您还有一个活动的
开发
分支(可能不止一个)、
发布
分支和
功能
分支

同步叉子 由于您有一个回购分支,这也在Github上(如果我理解正确的话),然后您的PC上也会有一个本地回购。通常,您会将该分支(
me/repo
)设置为标准的
origin
remote,然后将原始的
team/repo
设置为一个称为
上游
的远程。当您想要更新fork时,您可以从团队repo(
上游
)下拉,然后将这些更改推送到fork(
原始
)。如果此部件有任何问题,请参阅

您可能已经有了所有这些设置-不清楚。如果不是这样设置的,以下内容可能会偏离目标

如何从A变为B? 现在是答案的核心-如何从
local/fork
(到
team/repo
(或
upstream
,原始的团队中央回购)获得更改

首先,考虑叉是必要的。它可能是,但除非存在信任问题,或者这是一个大型分布式(可能多组)项目,或者开源,叉可能不需要。如果可以,只需在“代码>团队/RePO < /代码>中直接工作在一个特征分支中,避免了叉的复杂性增加。

假设需要fork,您可以使用
功能
分支,并对
开发
分支上的
团队/回购
执行拉式请求。这很好,并将您的更改作为一系列提交中的重基,或作为组合的单个提交,放入开发分支

从这里开始,这完全取决于您的团队的工作流程,即如何/何时更改到
master
。如果开发遵循Gitflow,则无需立即转到
master
。您应该将
功能分支出
开发
,而不是
master
。之后您的PR进入
develope
,然后只需将新的
develope
提交到您的本地回购中,然后推到您的分支,或者创建一个新的
功能
分支,或者继续使用现有的
功能
分支,直到需要下一个PR

最终,团队将把
develope
提交合并到
master
,其中一些可能也会在
release
分支中结束。如果是这样的话,可能会有一段时间你需要分支
master
release
分支,而不是
develope
,但新功能应该是bra关闭
develop
,而不是
master
develop
将合并到
master
,并将其分离)

您的团队可能会以不同的方式处理此问题,但这应该让您了解它的工作原理,并允许您提出正确的问题。主要的一点是,这里不一定存在问题,您的更改需要立即进入
master
。如果他们将其放入
master
,您仍然会从
u中将其下拉pstream
,但您可能需要签出本地
主机
,并将其合并到
上游/master
以快速前进,然后将其推到您的分支