当我使用git-repos(在C/C++中)时,我会定期切换分支,有时会想要构建一个特定的分支或标记(使用make)。当我切换回当前主要关注的分支时,运行make将导致非常长的构建时间。有没有办法配置git,或者使用一些git-checkout特定参数来恢复构建系统(例如make)所关心的存储库的状态?构建系统忍者在这方面做得更好吗?
如果没有办法做到这一点,为什么呢?如果有办法做到这一点,为什么不默认实现呢?
发布于 2017-01-25 21:33:03
主要的问题是为什么你的构建工具需要这么长的时间。如果是因为分支之间不同的文件需要重新构建,那么构建工具或Git应该如何防止这种情况?如果这是您的问题,您可以使用git worktree为不同的分支添加多个工作树。
发布于 2017-01-25 21:36:15
我不完全确定您所说的“就构建系统而言,存储库的状态”是什么意思;我假设您所说的是您更改到另一个分支,然后没有构建切换回来-但是这样做会改变源文件上的时间戳,因此make认为它必须重新构建所有内容……
最简单的解决方案是使用两个工作树-一个放在你的“通常聚焦的分支”上,另一个用来浏览其他分支。这可以通过克隆存储库两次或使用git worktree命令来完成。
我不知道git有什么方法可以将源时间戳设置为您切换分支之前的状态。为什么不行?因为在不引起问题的情况下,以一种通常有用的方式实现它可能是不可能的。
https://stackoverflow.com/questions/41852845
复制相似问题