我们有一个带有 2 个分支的 git 存储库,master 和 dev。开发中的新东西。修复在 master 中完成,然后合并到 dev 中。CruiseControl.NET 为我们处理建筑物。我们遇到了一个问题,即 git 源代码控制块列出了对未更改文件的修改。这似乎是因为它使用 git log 和 -m 来检测更改。
以下是我们采取的步骤:
- 在 dev 分支上,进行一次更改。
- 提交并将 dev 推送到远程存储库。
- CruiseControl.Net 然后获取最新版本,构建并发布这个单一更改。
- 在 master 分支上,更改另一个文件。
- 犯罪。
- 将 master 合并到 dev 中。
- 将 dev 推送到远程存储库。
- CruiseControl.Net 然后获取最新版本,构建并发布此更改和以前的更改!
在第 8 步中,使用 --name-only 和 -m 选项运行 git log 以检测修改。-m 导致列出合并中包含的所有文件,其中包括在步骤 1 中更改的文件。但此文件在步骤 4 中未修改,因此不应在步骤 8 中列为修改。
那么为什么使用 -m 呢?