与另一个 Git 仓库保持同步?

8

我在Github上fork了一个仓库。现在,原始仓库有一些更新。我如何从原始仓库中拉取更改并保持同步?

如果我的源代码与原始源代码冲突,我有机会手动编辑吗?

编辑1:谢谢大家的帮助。我想我需要阅读文档 :)

4个回答

9

在其他两个答案中没有明确说明的是,您无法直接从github上的原始项目合并到自己的分支中,您需要通过本地克隆来完成。

所以您需要将原始项目设置为远程(在Magnus Skog和CJlano的答案中称为upstream),然后从该远程仓库拉取到自己的本地克隆,并使用您本地的更改解决任何合并冲突,最后将结果推送到您在github上的分支中。


7
只需将原始存储库作为远程添加并从中拉取更改。
git remote add upstream path/to/upstream/repo.git
git pull upstream master

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

Pull in upstream changes

If the original repo you forked your project from gets updated, you can add those updates to your fork by running the following code:

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

1
请参阅 GitHub 文档中的“同步分支”部分。

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

  1. 在同步之前,您需要添加一个指向上游存储库的远程存储库。当您最初创建分支时可能已经完成了此操作。
  2. 同步您的存储库与上游存储库需要两个步骤:首先,您必须从远程存储库提取(fetch),然后您必须将所需分支合并到本地分支中。
  3. 从远程存储库提取(fetch)会带入其分支及其各自的提交记录。这些存储在您的本地存储库的特殊分支下。现在我们已经将上游存储库的主分支存储在本地分支upstream/master中。
  4. 现在我们已经获取了上游存储库,我们想将其更改合并到我们的本地分支中。这将使该分支与上游同步,而不会丢失我们的本地更改。如果您的本地分支没有任何独特的提交记录,则git将执行"快进(fast-forward)"。

附注:同步您的分支(fork)仅更新您的存储库的本地副本;它不会更新GitHub上的存储库。

附注2:每个步骤的实际代码在起始处粘贴的链接中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接