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

时间:2018-11-16 22:07:54

标签: makefile git-branch

据说,Git的最佳实践是在分支中进行实验,并且仅在看起来完美时才将其合并到master中。但这极大地减慢了我的开发周期,因为在Git中切换分支似乎会触及每个文件,即使那些不变的文件也是如此。结果是make从头开始重建整个项目,而不是仅重建那些已更改的文件。

2 个答案:

答案 0 :(得分:2)

根据我的经验,当您切换分支机构时,Git不会更新未更改的文件。我敦促您通过查看切换分支之前和之后的修改时间(对于已更改和未更改的文件)来更仔细地研究此假设。如果确实是因为时间戳更改了不变的文件,则可能需要弄清楚Git的问题所在。

如果文件修改时间没有改变,但是一切仍在重建,则说明您的Makefile存在问题。

如果您发现Git确实只在更新已更改文件的时间戳,但是这些文件对于您的系统是至关重要的,并且会导致大量重建,那么您可以考虑使用git worktree将不同的分支保留在不同的工作树中因此您不必在同一目录结构中在它们之间来回切换。

答案 1 :(得分:1)

如果您的项目使用C / C ++或ObjectiveC,并且原因是跨分支对makefile(项目文件)进行了轻微修改,则ccache将有很大帮助。该工具记住每个C文件的实际编译设置,并缓存生成的obj文件。重建项目时,即使修改了makefile,也可能会逐个文件跳过编译器。