与另一个git存储库保持同步?

时间:2012-07-25 08:56:37

标签: git github

我在Github上分叉了一个存储库。现在,原来有一些更新。如何从原始存储库中提取更改并与它们保持同步?

如果我的来源与原始来源发生冲突,我是否有机会手动编辑它?

EDIT1:谢谢大家的帮助。我想我需要RTFM:)

4 个答案:

答案 0 :(得分:9)

在另外两个答案中没有明确说明的是你不能直接从github上的原始项目合并到github上的fork,你需要通过你自己机器上的本地克隆。

因此,您将原始项目设置为远程(在Magnus Skog和CJlano的答案中称为upstream),然后从该远程拉入您的本地克隆,解决与您的本地更改的任何合并冲突,然后推送结果你的叉子在github上。

答案 1 :(得分:6)

请参阅:https://help.github.com/articles/fork-a-repo

  

吸引上游变更

     

如果您分配项目的原始仓库得到更新,那么   可以通过运行以下代码将这些更新添加到您的fork:

git fetch upstream
# Fetches any new changes from the original repo
git merge upstream/master
# Merges any changes fetched into your working files

答案 2 :(得分:4)

只需将原始存储库添加为远程存储库并从中提取更改

git remote add upstream path/to/upstream/repo.git
git pull upstream master

答案 3 :(得分:1)

请参阅关于“同步叉子”的github文档

https://help.github.com/articles/syncing-a-fork

  1. 在同步之前,您需要添加指向上游存储库的远程数据库。你最初分叉的时候可能已经这样做了。
  2. 将存储库与上游同步需要两个步骤:首先必须从远程获取,然后必须将所需的分支合并到本地分支。
  3. 从远程存储库中获取将引入其分支及其各自的提交。它们存储在特殊分支下的本地存储库中。我们现在将上游的主分支存储在本地分支上游/主站
  4. 现在我们已经获取了上游存储库,我们希望将其更改合并到我们的本地分支中。这将使该分支与上游同步,而不会丢失我们的本地更改。如果您的本地分支没有任何唯一提交,git将改为执行“快进”
  5. Ps:同步fork只会更新存储库的本地副本;它不会在GitHub上更新您的存储库。

    Ps 2:每一步的实际代码都是在开头粘贴的链接。