我在github有一个(私人)项目,开发人员团队会在这里进行更改。客户现在要求在他们自己的系统副本上开发一些繁重的自定义。一个新团队将在这个项目上工作,但我不希望这个团队有权访问原始存储库。所以我在github上创建了一个新的存储库,并用原始项目中的代码初始化它。
但是,我仍然希望第二个项目能够在原始项目上完成更新。如何设置存储库以满足此需求?
或者,如果我要保留一个项目,是否有办法让新团队只访问其中的特定分支?
答案 0 :(得分:5)
我已遵循this site的建议。对于任何有兴趣的人,我都在这里重复这个过程: 我们假设原始项目在 projectA 中检出,而 projectB 中的派生项目:
我第一次这样做:
cd path/to/projectB
git remote add orig_project path/to/projectA
git fetch orig_project
git merge orig_project/master -X theirs
git push
现在每次我需要同步从projectA到projectB的更改时,我会这样做:
git fetch orig_project
git merge orig_project/master
git push
orig_project
可以是任何东西。我第一次使用-X theirs
,因为否则所有提取的更改都会发生冲突
答案 1 :(得分:1)
从存储库中取出其他数据。创建一个新的存储库,只包含您希望它们能够看到的文件和分支,并从旧存储库中删除它们。然后give them read-only access to the new repository.
答案 2 :(得分:0)
你要找的是分支(我看到你使用它)。
https://help.github.com/articles/branching-out http://learn.github.com/p/branching.html
一旦你拥有了分支,你就不需要新的代码库,你可以使用fork(告诉他们为你的项目),这样他们就可以获得更新
在这里阅读mroe: Definition of "downstream" and "upstream"