2

我已经克隆了一个 github 项目,并且必须私下进行一些修改(例如输入付款信息)。Github 不允许我将分叉的 repo 设为私有,说我应该复制它

按照他们的指示对我不起作用(出现了一些错误,在他们的支持下工作)。尽管如此,我还是不明白流程 - 我需要能够做到所有这些:

  1. 需要时从原始存储库获取更新。
  2. 至少保留一个存储库私有。
  3. 进行一些更改并将它们推回原点。也许这将需要一个额外的公共存储库。

我不确定如何将所有这些同步在一起的最佳做法是什么。有什么建议给我吗?

4

2 回答 2

1

如果您不关心将您的提交推送到“保存”它们在远程私有服务器上,只需在只读版本(实际上是本地版本)上进行简单的克隆。

否则,您可以使用Bitbucket推送您的私人资料:

$ git clone … # the original project
$ git remote add ghost git@bitbucket.org/your_own_repo.git
$ git fetch origin # fetch the original
$ git push ghost master # push the head master into your own repo

当您需要通过原始项目进行更新时:

$ git pull origin *the_branch*

并将数据推送到:

$ git push ghost *the_branch*

就像 JB Nizet 所说,我看不出这里有什么意义。为什么不以正常方式贡献?

于 2012-12-26T09:11:46.180 回答
1

如果您的私有修改是更私有的配置,那么:

  • 根本不要在 git repo(任何 git repo)中对这些值进行版本控制:意外将它们推送到您不应该太高的风险。
  • 将它们存储在另一个引用中(任何允许您保存文件的云服务,甚至可能是加密的):这里不需要“私人分叉”。
  • 仅版本该配置文件的模板和具有公共值的文件。
  • 使用内容过滤器驱动程序:
    • 检查您是否在正确的环境(例如您的计算机)中签出 Git 存储库
    • 如果是这样,请访问您的其他引用,取回值并生成具有正确(私有)值的最终配置文件。

弄脏

有关具体示例,请参见此答案

于 2012-12-26T10:13:06.263 回答