0

我们有一个带有 2 个分支的 git 存储库,master 和 dev。开发中的新东西。修复在 master 中完成,然后合并到 dev 中。CruiseControl.NET 为我们处理建筑物。我们遇到了一个问题,即 git 源代码控制块列出了对未更改文件的修改。这似乎是因为它使用 git log 和 -m 来检测更改。

以下是我们采取的步骤:

  1. 在 dev 分支上,进行一次更改。
  2. 提交并将 dev 推送到远程存储库。
  3. CruiseControl.Net 然后获取最新版本,构建并发布这个单一更改。
  4. 在 master 分支上,更改另一个文件。
  5. 犯罪。
  6. 将 master 合并到 dev 中。
  7. 将 dev 推送到远程存储库。
  8. CruiseControl.Net 然后获取最新版本,构建并发布此更改和以前的更改!

在第 8 步中,使用 --name-only 和 -m 选项运行 git log 以检测修改。-m 导致列出合并中包含的所有文件,其中包括在步骤 1 中更改的文件。但此文件在步骤 4 中未修改,因此不应在步骤 8 中列为修改。

那么为什么使用 -m 呢?

4

1 回答 1

0

引入 Afaik -m 以正确检测合并提交。

查看此更改:https ://github.com/ccnet/CruiseControl.NET/commit/a65380e7d302370cfcb6fa3905dba0ed1b731458

于 2013-06-06T21:45:45.277 回答