【发布时间】:2019-02-08 01:32:14
【问题描述】:
我经常遇到以下情况:
- 修改文件 A、B 和 C。
- 使用
git commit提交修改。 - 构建项目,因此构建是最新的。
- 仅对文件 A 进行后续/修复修改。
- 运行
git commit -a --amend(或git commit --amend path/to/A) - 逐步重建项目。
现在,由于自上次构建以来我只修改了文件 A,我希望只有文件 A 被重建,但我总是看到 A、B 和 C 的所有内容(即,整个提交所涉及的所有文件)都被重建。
在我看来 git commit --amend 它 touching / 碰撞 A、B 和 C 中每一个的最后修改时间戳,即使我只是在提交中添加了 A 的修改。
有必要吗?是否可以避免,只触及A,只重建A?
如果重要的话,我的项目是 C++ 并且我的构建系统是 cmake+ninja,但我认为这在很大程度上是多余的,因为构建系统依赖上次修改的时间戳来确定要重建的内容是相当标准的。
【问题讨论】:
标签: git git-commit build-system git-amend