同步两个git(或github)存储库

时间:2012-03-08 01:03:10

标签: git github synchronization

我在互联网上找到了一些资源,包括SO中的两个问题,但我不清楚要执行的命令是什么。

  • 我有一个git repo(在github中)有人分叉并创建一个本地副本
  • 我创建了自己的本地副本。

Q1。他需要哪些命令才能看到这些变化?

#me 
git commit 
git push 
#him
?
? 
?

Q2。如果他做了一些更改我需要哪些命令来进行这些更改?

#him
git commit
git push 
# me 
?
? 

这可能是一个非常简单的问题,但我似乎没有找到答案。

2 个答案:

答案 0 :(得分:3)

据我了解,您有2个以上的用户在一个github存储库上工作。您正在直接从创建的github存储库工作,而另一个人分叉github存储库并在自己的fork上工作。

要使两个存储库同步,您需要将彼此添加为远程存储库。根据我分叉存储库的经验,我通常创建一个上游远程,这样我就可以从我分叉的原始存储库中提取更改。

git remote add upstream <others-git-url>
git pull upstream <branch>

前面提到的两个命令将允许从原始存储库分叉的人将更改从原始提取到 forked 存储库。

至于另一种方式,你可以为另一个人应用相同的概念(可能称为新的远程下游)。


作为旁注,如果托管存储库的人只提交其他用户可以使用的拉取请求,它可能会更顺畅。这样,多个用户可以在单个分支上工作,从而有效地简化了同步。完成拉取请求后,可以将更改推送到原始 github存储库的分支中。另一种方法是在同一个github存储库中工作(为新的协作工作创建一个新的分支),尽管这实际上归结为当前的工作/协作情况。

如果您需要或通过GitHub网络界面,您可以使用hub通过命令行发送拉取请求

答案 1 :(得分:2)

要获得更改,只需使用git pull,假设您使用的是同一个遥控器。如果您的遥控器是您的Github仓库,而他的遥控器是叉子,那么您需要将其叉子添加为遥控器。 (而且他还必须将你的原始回购添加为遥控器)。请参阅Github文档中的managing remotes