在github.com中fork私有git仓库

5

我想知道这是否可行。

我在Github上有一个“入门项目”(私有仓库)。我想做的是创建客户A仓库(也是私有的),但它应该从“入门项目”中派生。我的想法是,客户B、客户C等都可以拥有自己的私有仓库,如果我修复了“入门项目”中通用的错误,那么我就可以轻松地将bug修复拉到所有客户的代码库中。

我还没有找到解决这个问题的方法。目前,我通过克隆相同的私有项目来解决这个问题...这是Git问题还是github.com问题?

有什么解决方法吗?

2个回答

7

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

但是……如果每个客户的存储库在单独的帐户中,您可以使用常规的 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界面只是为了方便常见情况而设计的。如果您需要做一些不常见的操作,只需使用您通常使用的git工具即可。Github并不关心。


在这种情况下,如果您更改了主分支中定制的文件,那该怎么办?如果您从主分支同步,那么上述更改会覆盖分支级别的更改吗? - Jay J

3
对于Git来说,克隆与分叉是相同的,更准确地说:Git不知道分叉,这是GitHub的事情。从技术上讲,所有分叉只是具有不同所有者的克隆。因此,如果您为三个客户克隆起始项目,则实际上具有具有多个分支的单个存储库,因为每个分叉都是一个分支。也许您应该考虑为起始项目使用子模块,并将其包含在每个客户端存储库中?

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