1

我在 GitHub 上有一个foo使用以下分支调用的存储库:

  • 掌握
  • gh页面

我在 GitHub 上有第二个存储库,称为<username>.github.com(用户存储库),具有以下分支:

  • 掌握
  • 来源

我想使用 infoo->master中的代码,<username>.github.com->source并能够在更改foo->master发生时合并它们。

实现这一目标的最佳方法是什么?

4

2 回答 2

4

您可以添加foo/master为遥控器,不时将其合并(在<username>.github.comrepo 中执行此操作):

# add foo as remote (once)
git remote add foo https://github.com/<username>/foo.git
# fetch from remote (often)
git fetch foo
# merge changes to source (when you want)
git checkout source
git merge foo/master

您可以正常设置origin/source为远程主机sourceorigin/master远程主机。

您还可以使用git fetch --all更新所有遥控器,包括originfoo

如果您在 中没有太大变化source,那么合并几乎总是快进的。


您可能想为 foo 设置一个只读的远程 url。这样你就不会<username>.github.com意外推送,如果它是一个公共仓库,你不需要身份验证(或你的 ssh 密钥的密码)来获取。


您可以使用以下命令阻止 git 获取gh-pages分支

git config remote.foo.fetch "+/refs/heads/master:/refs/remotes/foo/master"
git branch -rD foo/gh-pages

master当您期望任何其他分支而不是从foo远程出现时,您只需要记住设置。

参考规范的一个很好的解释是在git book

于 2012-12-19T13:47:50.627 回答
0

也许以下会有所帮助(虽然我不是 100% 确定这一点):

# Add a remote foo
git remote add foo <foor-url>

# create a foo-master branch
git checkout -b foo-master

# Set upstream branch for foo-master
git branch --set-upstream foo-master foo/master

# fetch code from foo master 
git fetch foo master

# reset the current branch to foo master
git reset --hard foo/master

# merge in source
git checkout source
git merge foo-master

要更新 foo-master:

git checkout foo-master
git pull
于 2012-12-17T23:12:23.063 回答