Git分支只有整体代码的一部分

时间:2018-02-07 07:46:55

标签: git branch

我目前正在使用 - 我想 - 标准工作流程:

  • 主分支:稳定代码
  • 开发分支:开发功能
  • XXX分支:new_features分支

使用以下工作流程:

*--*--*--*--*--*--*--*--*--*--*- (master)
          \
            *--*--*--*--*--*--*- (development)
               \
                - *--*--*--*--*- (new feature X) 

我的主分支包括我项目所有模块的文档,示例和教程

Project TOTO
  |
  |
  --- Module pepito 
  |     |
  |     ----Submodule alpha (src, docs, tutorials, examples)
  |     |
  |     ----Submodule beta (src, docs, tutorials, examples)
  --- Module pepita
  |     |
  |     ----Submodule gamma (src, docs, tutorials, examples)
  |     |
  |     ---- Submodule delta (src, docs, tutorials, examples)
  ---- Module pepiti (src, docs, tutorials, examples)

这个工作流程很好,但我想要一个新的分支“光”没有文档,教程和这样的例子:

Project TOTO
  |
  |
  --- Module pepito 
  |     |
  |     ----Submodule alpha (src only)
  |     |
  |     ----Submodule beta (src only)
  --- Module pepita
  |     |
  |     ----Submodule gamma (src only)
  |     |
  |     ---- Submodule delta (src only)
  ---- Module pepiti (src only)

由于我的所有项目都具有相同的结构:

Main directory
 - src
 - docs
 - examples
 - tutorials

我想定义一种“gitignore”,当我从master合并到新的“light”分支时,它排除了模式“docs”,“examples”和“tutorials”。可能吗 ?

我发现了一些这样的资源: ignore a directory while merging 要么 setupd a git driver to ignore a folder

但它们不适合我的工作流程(第一个链接)或似乎是一个矫枉过正(第二个链接)

是否有简单的方法来获取请求的行为,还是应该更改我的工作流程? 谢谢

2 个答案:

答案 0 :(得分:3)

你总是可以从主人创建一个分支'x'然后你可以删除不需要的内容并提交。

为了让您的工作更轻松,您可以考虑分支特定的git-ignore,但此功能目前在git中不可用

最好的办法是创建分支并删除不需要的内容并提交。

答案 1 :(得分:1)

我认为一个好的解决方案是将文档,示例等移动到另一个存储库,并将其作为子模块仅链接到需要它的那些分支。