Git分支 - 如何创建一个干净的发布分支而不使用子模块

3
我有一个基于GitFlow的项目git仓库。我有一个主分支,一个开发分支(所有工作都在这里完成)和一个发布分支。
我的仓库依赖于一些子模块,我希望继续跟踪这些子模块,因为这些子模块会更新,但是我不希望我的发布分支包含完整的子模块(测试、文档等),我只想让我的发布分支包含子模块的“产品”。
我的开发分支包含所有内容,主分支也是如此。开发周期性地合并到主分支。我的发布分支目前是主分支,但我只想要一个干净的发布分支,不要充满我的开发文件。
如果有需要,我已经附上了一个草图。 My Git Repo Sketch 我该怎么做?
1个回答

3
通常,这种清理工作应由您的发布脚本完成,即根据您的工作树切割发布存档(或其他任何内容)的过程。我认为大多数人不会觉得有必要在仓库中进行清理。
当然,这并不意味着您不能这样做。您只需在创建合并时“git rm”所有文件/路径(包括子模块)中您不想保留的内容(即使没有冲突,“git merge -n”也允许您更改合并内容)。这不是合并的预期用法,但至少它不会让宇宙崩溃,只要您不将发布分支合并回其他分支或基于其启动新的开发分支。
请注意,这样做可能会导致受影响路径上的合并冲突,每次合并到发布分支时都会出现,但无可奈何。每次重复相同的操作即可。
哦,还有一个需要注意的地方:无法仅删除子模块的一部分-全部或不删除。
PS.如果您尚未这样做,请使用--no-ff合并到发布分支。这样,这些特定于分支的更改将被“隐藏”在合并提交中,并且不会在历史记录中杂乱无章地出现"get rid of these files" 提交。

谢谢提供的信息 - 我只是想发布一个不带垃圾文件的公开版本。我认为我会按照你在开头段落中提到的建议编写一些脚本来进行清理!再次感谢! - a1phanumeric

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接