首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >git:为每个遥控器提供不同的.gitignore文件

git:为每个遥控器提供不同的.gitignore文件
EN

Stack Overflow用户
提问于 2012-05-07 07:49:54
回答 3查看 20.7K关注 0票数 82

我有一个远程存储库,我想在其中提交某些文件(在云计算平台上部署它们的编译文件),但我不想在github上部署它们……

有没有什么方法可以保存不同的.gitignore文件,每个遥控器一个?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-07 08:00:30

这在git的模型中是没有意义的。Commits包含多组文件;所有.gitignore文件所做的就是告诉UI不要自动添加与某些模式匹配的文件。这实际上意味着拥有几乎相同的并行提交集,但只包含文件的一个子集。

可以使用分支方案来实现这一点,在分支方案中,您有一个“部署”分支,该分支从master中拆分出来,它是相同的,但包含额外的编译文件。这甚至可以通过git钩子自动编译文件并将其添加到repo中。我设想了一个这样的结构:

代码语言:javascript
复制
master:       A ---> B ---> C ---> D
               \      \      \      \
                \      \      \      \
deployment:      -> A'  -> B'  -> C'  -> D'

也就是说,每当某个服务器在master上获得新的提交时,它就会构建项目,将构建的文件添加到D的新提交中,并将其提交到deployment分支--然后不必推送到github。

票数 46
EN

Stack Overflow用户

发布于 2017-04-26 04:28:55

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

在我的例子中,我需要将项目与heroku和GitHub同步(作为我的公共存储库)。

但我对在公共存储库中与私有信息共享一些文件不感兴趣。

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

代码语言:javascript
复制
Project folder (remote heroku)
    - .git
    - .gitignore
    - (folders and files)

我所做的是再添加一个级别,并在其中创建另一个git存储库,其中包含一个可以省略项目中某些文件的.gitignore

代码语言:javascript
复制
Project public (remote GitHub)
    - .git
    - .gitignore
    - Project folder (remote heroku)
        - .git
        - .gitignore
        - (folders and files)

因此,这不是一个包含两个具有不同.gitignore的远程存储库的git存储库。

有两个不同的存储库。

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

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

票数 14
EN

Stack Overflow用户

发布于 2016-10-27 04:41:57

另一个选择是git submodules

例如,如果您希望代码和文档位于两个不同的代码库中,并具有独立的访问控制等,那么这将非常有用。因此,您总共有3个代码库,一个子模块代码库,另一个代码库,以及包含这两个代码库的“主”(而不是git子模块)代码库(可能是用于pypi上传)。这是一个很好的组织CS教科书项目的方式。这两个项目都可以愉快地独立进行,并在主存储库维护者的驱动下在主要版本中同步。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10475273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档