我有一个配置文件提交到私有远程存储库(AKA私有)。现在我想与他人分享我的项目。他们可以访问不同的远程存储库(AKA共享)。 我不希望看共享的人能够看到此配置文件。
push -f
。 Git是否提供了执行此操作的机制?
答案 0 :(得分:1)
将文件保留在分支之外的唯一方法是永远不要将其提交到那里,并且永远不要在该文件所在的任何其他分支上重新绑定分支。这是使它远离历史的唯一方法。
考虑在永远不会提交此文件的分支上工作,并且只将该分支推送到共享存储库。
然后,打开另一个提交非共享文件的分支,它就存在了。然后,继续将 分支机构重新定位到您公开的分支机构上。
如果您需要使用非公共文件进行测试,则必须切换到该分支,在主开发分支的头部进行rebase,然后在完成后切换回主开发分支,该文件不存在的地方。从本质上讲,您的私有分支将始终在主要开发分支之前提交一个或多个提交,额外提交是非公共文件更改的历史记录。
这将是一种痛苦,但这几乎是我能想到做这样的事情的唯一方式。如果您打算这样做,我强烈建议您安装一个提交钩子(请参阅git文档),它将检查并确保非公共文件不会意外地提交到主开发分支。它不太可能发生,但它是一个安全网。我能看到的最常见的错误是忘记你已经检查了私人分支,并在那里做了一些提交。
如果您意识到这种情况发生了,请不要回到主开发分支,并尝试将其重新绑定到私有分支。这将把文件拉入主开发分支的历史。相反,仔细挑选私人分支机构的承诺,使主要开发部门更新。
答案 1 :(得分:-1)
使用本教程从您的仓库中删除该文件 https://help.github.com/articles/remove-sensitive-data/
然后使用git-crypt保持配置文件加密但仍由git https://github.com/AGWA/git-crypt
跟踪