Git / 完成发布 / 排除文件

Posted

技术标签:

【中文标题】Git / 完成发布 / 排除文件【英文标题】:Git / Finish Release / Exclude File(s) 【发布时间】:2014-02-18 23:10:36 【问题描述】:

我们的项目分为 4 个不同的 Git 项目(层次结构),其中 leaf 项目是客户部分。

为了发布新版本,我们使用 (SourceTree) 和 GitFlow-Feature。因此,从最新的 dev 分支中创建了一个新分支,当发布完成后,它将被合并回 dev,并填充到 master-branch。

为了更容易开发,我们曾经对所有项目使用固定版本(“dev” insetead of x.y.z),同时在开发分支上工作并设置实际版本,每当我们填充分支时到发布分支。

因此,我们希望避免将 pom 文件合并回 dev-branch。 (pom 中定义的版本应该使用 dev,而所有其他(最终)更改应该合并回 dev。)

有没有办法在不重新发明***的情况下实现这一目标?

所以,在完成发布后:

将所有更改填充到主分支 将更改合并回开发分支,除了 pom 文件?

【问题讨论】:

子模块可以提供帮助,将所有子项目作为 git 子模块创建一个聚合项目,然后递归地提交/合并/任何内容。 【参考方案1】:

将 pom 文件中的版本更改为自己在发布分支中的提交,并立即“伪造”将其合并回开发分支 (merge --strategy=ours)。

https://***.com/a/19794987/11296

一旦该提交被合并(甚至是假合并)回到开发中,它的更改将不会包含在未来的合并中回到开发中(直到再次更改 pom 文件)。

注意,如果您在版本更改提交之前在发布分支上有任何提交,请确保您首先“真实”合并这些,然后伪造合并版本更改提交(然后真正合并未来的真实更改,然后伪造未来的版本更改,冲洗并重复...)。

【讨论】:

以上是关于Git / 完成发布 / 排除文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 git 中列出所有排除的文件? [复制]

想要从“git diff”中排除文件

如何仅从 Git 的根文件夹中排除文件

GIT - 从提交中排除/忽略文件[重复]

如何从 git grep 搜索中排除某些目录/文件

从 git 存储库中排除 ios 项目的哪些文件? [复制]