【问题标题】:Forking private git repo in github.com在 github.com 中分叉私有 git 仓库
【发布时间】:2010-11-18 12:48:37
【问题描述】:

我想知道这是否可能。

我在 github(私人存储库)中有一个“入门项目”。我喜欢做的是创建customerA repo(也是私有的),但它应该从“启动项目”中分叉出来。我的想法是客户 B、客户 C 都可以拥有自己的私人仓库,如果我修复了“入门项目”中的通用错误,我可以轻松地将错误修复拉给我的所有客户。

我还没有找到解决这个问题的方法。目前我通过克隆 sampe 私人项目解决了这个问题。它是 git 问题还是 github.com 问题?

有什么解决办法吗?

【问题讨论】:

    标签: git github private


    【解决方案1】:

    这就是分支的用途。每个客户都有一个分支,问题解决了。

    但是...如果每个客户的存储库都在一个单独的帐户中,您可以只使用常用的 git 工具来共享更改。举个例子:

    $ git clone git@github.com:client/your-project
    $ cd your-project
    $ git remote add original git@github.com:you/your-project
    $ git fetch original
    $ git cherry-pick <change from original>
    $ git merge <whatever>
    $ git rebase <whatever>
    $ git push origin
    

    等等

    Github 的 Web UI 只是为常见情况提供便利。如果你需要做一些不寻常的事情,只需使用你常用的 git 工具。 Github 不在乎。

    【讨论】:

    • 在这种情况下,如果你在master上更改了一个在分支中自定义的文件怎么办?如果你从 master 同步,上面会覆盖分支级别的变化吗?
    【解决方案2】:

    对于 Git,克隆与分叉相同,或者更准确地说:Git 不知道分叉,这是 github 的事情。从技术上讲,所有分叉都只是具有不同所有者的克隆。

    因此,如果您为三个客户克隆您的初始项目,那么您实际上拥有一个包含多个分支的存储库,因为每个分支都是一个分支。也许您应该考虑为您的启动项目使用子模块并将其包含在每个客户存储库中?

    【讨论】:

      猜你喜欢
      • 2022-08-20
      • 2012-08-27
      • 2018-06-16
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      • 2023-01-01
      • 1970-01-01
      • 2015-02-08
      相关资源
      最近更新 更多