是否可以只跟踪git分支中的文件夹?

时间:2013-03-08 01:46:45

标签: github git-branch github-pages

我不知道这是否有意义......

我有一个主私人git存储库,我在那里进行所有编码。我设置另一个公共git只发布公开结果(我的一些原始数据是敏感信息)。我已将所有结果准备好放在私有git中的一个文件夹中。

那么,是否可以将公共git的分支(github-pages)仅跟踪我的私有git的结果文件夹?

或者你们都有更好的工作流程吗?

谢谢,

2 个答案:

答案 0 :(得分:1)

是的,有可能

你可以这样做:

1)将私人文件夹暂时移至另一个地方

2)创建一个新的repo(你应该这样做以删除可能在公共分支中公开私有文件的旧提交中的任何日志)并在主分支上只包含公共文件(到现在为止)

    git init
    git add . 
    git commit -m 'adding public files to repo'

2)创建并签出名为public_stable的新分支

    git checkout -b public_stable

3)使用'/ your-private-folder-name /'行创建一个.gitignore文件。在public_stable分支中,从公共分支中排除这些文件

例如,在linux盒子上......

    touch .gitignore && echo '/your-private-folder/*' >> .gitignore

...下

    git add .gitignore
    git commit -m 'this branch will ignore files located on private folder'

4)返回master并从master

创建一个新的分支private_stable
    git checkout master
    git checkout -b private_stable

4)现在您可以将私人文件夹移回项目

    git add /your-private-folder-name/.
    git commit -m 'added private files'

5)在此之后,您将有两个主要分支:public_stable和private_stable

6)要处理您的私人文件,您应该从private_stable分支,以便从稳定的工作中创建单独的工作。

来自private_stable ...

   git checkout -b private_issue

在private_issue完成后,您可以将更改合并到private_stable

您可以为public_ *分支机构应用相同的工作流程

通过这种方式,您可以将公共内容与私人内容隔离开来。

Master将拥有所有文件,但您应避免将位于public_ *分支中的.gitignore合并到master或private_ branches。

答案 1 :(得分:0)

因为它是一个分支,我建议只删除分支中的所有文件夹并提交。因为看起来你只想在那个分支中,这不应该对你的工作流产生影响。