Git分支只包含整个代码的一部分

Git分支只包含整个代码的一部分,git,branch,Git,Branch,我目前正在使用一个标准的工作流程: *--*--*--*--*--*--*--*--*--*--*- (master) \ *--*--*--*--*--*--*- (development) \ - *--*--*--*--*- (new feature X) 主分支:稳定代码 发展科:发展特色 XXX分支机构:新功能分支机构 使用以下工作流: *--*--*--*--*--*--

我目前正在使用一个标准的工作流程:

*--*--*--*--*--*--*--*--*--*--*- (master)
          \
            *--*--*--*--*--*--*- (development)
               \
                - *--*--*--*--*- (new feature X) 
  • 主分支:稳定代码
  • 发展科:发展特色
  • XXX分支机构:新功能分支机构
使用以下工作流:

*--*--*--*--*--*--*--*--*--*--*- (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)
这个工作流程很好,但我想要一个没有文档、教程和示例的新分支“light”:

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”。可能吗

我发现了一些类似的资源: 或

但是它们不符合我的工作流程(第一个链接),或者似乎是一个过度的(第二个链接)

是否有一种简单的方法来获得请求的行为,或者我应该更改我的工作流程?
谢谢

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

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

您始终可以从master创建分支,例如“x”,然后您可以删除不需要的内容并提交

为了简化您的工作,您可以考虑使用特定于分支的git ignore,但该功能目前在git中不可用


您最好创建一个分支,删除不需要的内容并提交。

您可以从master创建一个分支,例如“x”,然后删除不需要的内容并提交

为了简化您的工作,您可以考虑使用特定于分支的git ignore,但该功能目前在git中不可用


您最好创建一个分支,删除不需要的内容并提交。

谢谢您的回答。我还在学习git,所以我找到了一个关于git的资源。您的解决方案很好,但它似乎打破了我的项目结构,我必须将所有文档/示例/教程放在同一个文件夹中,然后将其链接到主分支。我遗漏了什么吗?请注意,我的解决方案很容易在新的存储库中实现。如果您想修改您已有的存储库,那么解决方案要复杂一些。首先,您需要创建一个新的存储库(或多个存储库),其中包含示例、文档以及您不希望包含在每个分支中的所有其他内容。比如说它的地址是git@github.com:torvalds/linux.git然后需要将其作为子模块添加到分支中。签出“pepito”,然后只需添加git模块git@github.com:torvalds/linux.git finally/the/path/where/you/want/it。您所说的“移动到另一个分支”是指“移动到单独的(子)存储库”@roalz是的,另一个存储库或子存储库,谢谢您的回答。我还在学习git,所以我找到了一个关于git的资源。您的解决方案很好,但它似乎打破了我的项目结构,我必须将所有文档/示例/教程放在同一个文件夹中,然后将其链接到主分支。我遗漏了什么吗?请注意,我的解决方案很容易在新的存储库中实现。如果您想修改您已有的存储库,那么解决方案要复杂一些。首先,您需要创建一个新的存储库(或多个存储库),其中包含示例、文档以及您不希望包含在每个分支中的所有其他内容。比如说它的地址是git@github.com:torvalds/linux.git然后需要将其作为子模块添加到分支中。签出“pepito”,然后只需添加git模块git@github.com:torvalds/linux.git finally/the/path/where/you/want/it。您所说的“移动到另一个分支”是指“移动到单独的(子)存储库”@roalz是的,另一个存储库或子存储库,谢谢您的回答。特定于分支的git是否忽略了正在开发中的功能?请注意,如果合并,则删除的内容也将从主版本中删除。@evolutionxbox True,但工作流将是
development-merge>master-merge>“light”
。唯一的问题是,我必须手动删除每个mergeNo的所有文档/教程/示例,但这是必需的。它可能会在未来发挥作用,谢谢你的回答。特定于分支的git是否忽略了正在开发中的功能?请注意,如果合并,则删除的内容也将从主版本中删除。@evolutionxbox True,但工作流将是
development-merge>master-merge>“light”
。唯一的问题是,我必须手动删除每个mergeNo的所有文档/教程/示例,但这是必需的。它将来可能会起作用