问题:Make在Git中切换分支后重建整个项目



Git的最佳实践应该是在分支中进行实验,只有在看起来完美的时候才能将这些工作合并到master中。但这大大减慢了我的开发周期,因为在Git中切换分支似乎会影响到每个文件,即使是那些没有更改的文件。结果是make从头开始重建整个项目,而不仅仅是那些已经更改的文件。

根据我的经验,Git不会更新切换分支时没有更改的文件。我敦促您通过查看切换分支之前和之后的修改时间,对于已更改和未更改的文件,更仔细地检查这一假设。如果没有更改的文件的时间戳确实在更改,那么你可能需要弄清楚你的Git出了什么问题。

如果文件修改时间没有改变,但一切仍在重建,那么您的makefile就有问题了。

如果你发现Git实际上只是更新已经更改的文件的时间戳,但这些文件是你系统的核心,并导致大规模的重建,那么你可以考虑使用git worktree在不同的工作树中保留不同的分支,这样你就不必在同一目录结构中在它们之间来回切换。

如果您的项目是在C/C++或objectiveC中,并且原因是makefile(项目文件(在分支之间略有修改,那么ccache将非常有帮助。该工具记住每个C文件的实际编译设置,并缓存生成的obj文件。重建项目时,即使makefile已被修改,编译器也可能逐个文件跳过。

最新更新