我见过这个问题 Can I add a file to my local Git repo but not push it to remote,但我有不同的情况。
我在Github有一个公共远程Repo(但可能是支持Git的任何东西,从Google Code到Visual Studio Online)。我有一些我不想与公众分享的文件,但我希望将它们放在我的本地存储库中。考虑证书,私钥,部署配置文件, et similia 。不过,它不是关于大小,而是关于秘密和隐私。
理想情况下,我在Git中有一个转换命令,使用带有规则a-la .gitignore的配置文件,init / push / pull到/来自转换后的存储库。
+----------+ +--------+
| internal | | public |
+----------+ +--------+
^ ^
| |
+--------+ +-------------+
| local | ==(*)==> | transformed |
+--------+ +-------------+
我可以使用当前Git版本可以使用的技术:
选项1和3类似,我最终没有对文件进行版本控制。第二个是尴尬的,并在我的目录和文件上强加了一个人工结构,通常很难设置。
答案 0 :(得分:0)
看看 git-filter-branch ,它可能是你感兴趣的东西。
它确实会创建一个额外的提交。
你需要对被重写的历史保持警惕。
参考:http://git-scm.com/book/en/v2/Git-Tools-Rewriting-History#The-Nuclear-Option:-filter-branch
另一种方法可能是创建一个“推”分支,当你从开发分支重新定义push分支时,只需删除你不想暴露的文件(使用脚本或类似的东西)。
就我个人而言,我认为使用不同的分支进行推送会更容易维护。