Git 如何创建';私人叉子';,与原点保持同步,并向后推?

Git 如何创建';私人叉子';,与原点保持同步,并向后推?,git,github,pull-request,Git,Github,Pull Request,我已克隆,必须私下进行一些修改(例如输入付款信息)。Github不允许我私下进行分岔回购,说我应该这样做 遵循他们的指示对我不起作用(遇到一些错误,在他们的支持下进行处理)。尽管如此,我还是不明白流程——我需要能够做到所有这些: 需要时从原始回购获取更新 保持至少一个存储库私有 进行一些更改并将其推回到原点。也许这需要一个额外的公共存储库 我不确定如何将所有这些同步在一起的最佳实践是什么。有什么建议吗?如果您不想在远程专用服务器上强制提交«保存»它们,只需在只读版本(实际上是本地版本)上进行简单

我已克隆,必须私下进行一些修改(例如输入付款信息)。Github不允许我私下进行分岔回购,说我应该这样做

遵循他们的指示对我不起作用(遇到一些错误,在他们的支持下进行处理)。尽管如此,我还是不明白流程——我需要能够做到所有这些:

  • 需要时从原始回购获取更新
  • 保持至少一个存储库私有
  • 进行一些更改并将其推回到原点。也许这需要一个额外的公共存储库

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

    如果您不想在远程专用服务器上强制提交«保存»它们,只需在只读版本(实际上是本地版本)上进行简单克隆即可

    否则,您可以使用推送您的私人物品:

    $ 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*
    

    但是就像他说的,我看不出这有什么意义。为什么不以正常的方式贡献呢?

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

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


    具体示例请参见。

    如果您退回到公共回购,您所有的私人修改都将公开,那么有什么意义呢?@JBNizet-我有一些私人修改我想做,还有一些我想公开。我想我需要两个存储库——公共存储库和私有存储库。我的问题是如何整齐、一致和定期地将我的公共回购协议的变化导入私人回购协议?