一个项目,不同的存储库

时间:2013-11-03 11:49:42

标签: git

我有一个项目,我想将其放入2个存储库:公共和私有。该项目有一些私人文件,我不希望任何人看到这就是为什么我必须创建一个私人存储库,这些文件将在其中。同样,我希望项目能够在我的投资组合中,因此雇主将更容易地评估我的技能,并且我也会创建公共资料。

所以我必须使用.gitignore,不是吗?但它足够安全吗?我想如果我将项目提交到私有存储库,然后将一些文件添加到.gitignore并将其提交给公共文件,那么gitignore中的那些文件可以从历史记录中检索出来,不是吗?因此,即使在公共存储库中,每个人都可以看到它们不是我想要的。无论如何,我必须在我提交之前不断地添加和删除gitignore这些文件,并且它是redicilious。

我该怎么办?

3 个答案:

答案 0 :(得分:1)

gitignore使文件完全脱离版本控制,这通常不适用于源代码。

也许:

  • 公共私有代码拆分为代码到他们自己的存储库中
  • 重构公开代码转换为私有代码可以使用的连贯
  • 将公共回购设置为私人回购的 subtree ,如下所示:

git subtree add -P public_directory git://github.com/user/public-repo.git master

答案 1 :(得分:1)

我们遇到了类似的问题,我处理这个问题的方法是必须完全分离存储库,并使用Beyond Compare定期同步更改。在你的情况下,我假设'私人'回购将是你的主要开发发生的地方,而'public'实际上只是一个只读回购,所以你将你所有的工作做'私人'然后复制根据需要使用diff工具更改为“public”。

答案 2 :(得分:0)

为什么要将 git存储库公开?听起来您想要公开存储库的内容(实际代码),而不是存储库结构(历史记录)。

如果您绝对想要公开您的存储库,您可以为您的私人内容使用单独的分支,然后您可以在公共分支上进行重新分配。绝对不能将私有分支推送到任何公共存储库。这可能是管理的负担。

相关问题