8

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

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

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

4

4 回答 4

9

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

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

于 2012-07-25T11:44:01.897 回答
7

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

git remote add upstream path/to/upstream/repo.git
git pull upstream master
于 2012-07-25T11:42:52.427 回答
6

见:https ://help.github.com/articles/fork-a-repo

拉入上游更改

如果您从 fork 项目的原始 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
于 2012-07-25T09:06:21.467 回答
1

请参阅有关“同步分叉”的 github 文档

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

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

Ps:同步你的fork只会更新你本地的repository副本;它不会更新您在 GitHub 上的存储库。

Ps 2:每个步骤的实际代码在开头粘贴的链接中。

于 2013-06-27T07:40:29.163 回答