如何与合作者共享私有GitHub回购中的一个分支,作为只读



我刚开始与GitHub合作。

我有一个带有不同目录的私人存储库。

我想以只读方式与合作者共享一个特定的目录。

我读到:在GitHub上与特定用户共享一个私有的git存储库作为只读

这个问题是:与使用Github的人共享git repo的一个分支的好方法是什么?

然而,我仍然不清楚

1( 创建一个孤立分支可以让我像在master中那样不断更新和提交它吗?

理想情况下,我可以不断更新该分支,合作者可以看到这些变化,但不能看到回购的其他部分。

当然,只使用这个目录创建一个新的repo或共享文件就可以了,但我想知道并理解github是否可以实现这种理想的场景。

  1. 要确保某人只能看到一个分支,您必须仅使用该分支进行单独的回购。我在下面称之为share repo

    • share repo可以将主repo作为其上游远程,并且您可以只将一个分支拉入其中。不要使用git clone,因为它会复制所有内容。只需git init——新目录中的share repo,设置一个指向主repo的远程(我建议将其命名为upstream,因为origin通常用于命名GitHub远程(
    • 创建一个新的GitHub repo,将其设置为share repo的另一个远程,如果你想与git clone命名所有其他GitHub远程的方式一致,则将其命名为origin,或者像我一样将其命名成github,以减少多个远程的混淆和错误(
    • master分支推送到Github
    • 将此新回购提供给任何合作者
    • upstream中进行更改时,将这些更改拉入share repo,然后将它们推送到origin
  2. 不能将其设为只读。

    • 但别担心。它只是主upstreamrepo的副本,后者你不允许任何人访问
    • 只要告诉他们不要写。如果有人不小心写了,你可以用git push -force从你的本地repo到GitHub覆盖他们的写。事实上,无论何时更新share repo,都可以始终使用git push --force

如果有什么不清楚的地方,请告诉我,我可以补充我的答案。

最新更新