如何创建一个忽略原始存储库中某些文件的Git远程存储库?

时间:2012-05-19 23:24:08

标签: git github

我有项目文件(包括测试文件),我想在我的本地计算机上使用Git进行版本控制。我想创建一个公共远程存储库(在GitHub上),它只包含我的项目文件的一个子集(我希望我的项目中的一些测试文件从公共远程存储库中省略。)

如何设置远程存储库以便省略某些文件,并且远程存储库或其历史记录中没有这些文件存在的引用?

1 个答案:

答案 0 :(得分:1)

试试这个:

  • 初始化你的git存储库:

    git init
    
  • 添加所有公共文件并进行初始提交:

    git add public1 public2 ...
    git commit -m 'initial commit'
    
  • 创建一个新的private分支:

    git checkout -b private
    
  • 添加您不希望公开曝光的测试文件和其他内容:

    git add testcase1 testcase2 ...
    git commit -m 'added test cases'
    

现在您拥有一个包含两个分支的存储库。 master分支仅包含您要公开公开的内容。 private分支基于主分支,但有一些额外的文件。

添加你的github remote并推送主分支。

您希望在master分支上完成大部分工作,并根据需要定期将更改合并到private分支。

更新:如果您需要经常处理这些文件,这会变得很复杂,因为很难将“私有”文件的更改与公用文件的更改分开。如果所有私有文件都可以限制在特定的子目录中,最简单的方法就是将私有文件放在一个单独的存储库中(并在公共存储库中检出工作副本)。

即使您无法将所有内容限制在同一个子目录中,也可以通过创造性地使用符号链接来寻求类似的解决方案。