git:每个远程都有不同的.gitignore文件

ope*_*sas 66 git github gitignore

我有一个远程仓库,我想提交某些文件(编译后的文件将它们部署在云计算平台上),但我不想在github上部署它们...

是否有一些方法可以使用不同的.gitignore文件,每个远程一个?

Dou*_*gal 39

这在git的模型中没有意义.提交包含多组文件; 所有.gitignore文件都告诉UI不要自动添加符合特定模式的文件.这实际上意味着具有几乎相同的并行提交集,但仅包含文件的子集.

可以使用分支方案来执行此操作,其中您有一个"部署"分支,它从主分离并且是相同的但包含其他编译文件.这甚至可以通过git钩子自动编译文件并将它们添加到repo中.我想象一个这样的结构:

master:       A ---> B ---> C ---> D
               \      \      \      \
                \      \      \      \
deployment:      -> A'  -> B'  -> C'  -> D'
Run Code Online (Sandbox Code Playgroud)

即,每当某个服务器在master上获得新的提交时,它构建项目,将构建的文件添加到D的新提交中,并将其提交到部署分支 - 然后不必将其推送到github.

  • 好主意,我没有想过回合使用不同的分支,每个分支都有自己的.gitignore (3认同)

Gui*_*rme 7

我想出一种方法来做到这一点。

就我而言,我需要将项目与heroku和github(作为公共仓库)同步。

但是一些带有私人信息的文件在公共存储库中共享并不有趣

通常,一个简单的项目将具有以下文件夹结构

Project folder (remote heroku)
    - .git
    - .gitignore
    - (folders and files)
Run Code Online (Sandbox Code Playgroud)

我所做的是再添加一个级别,并在其中创建另一个git存储库,其中带有gitignore会从我的项目中删除一些文件。

Project public (remote github)
    - .git
    - .gitignore
    - Project folder (remote heroku)
        - .git
        - .gitignore
        - (folders and files)
Run Code Online (Sandbox Code Playgroud)

因此,这不是具有两个具有不同gitignores的远程存储库的git存储库。

有两个不同的存储库。

在最里面,我仅排除由IDE生成的文件和一些在运行时生成的文件。

在最外层,我排除了所有无法公开的文件。