0

当我使用我的 git-repos(在 C/C++ 中)时,我会定期切换分支,有时想构建一个特定的分支或标签(使用 make)。当我切换回当前主要关注的分支时,运行 make 将导致构建时间非常长。就构建系统(例如 make)而言,是否有某种方法可以配置 git,或者使用一些 git-checkout 特定参数来恢复存储库的状态?构建系统忍者在这方面做得更好吗?

如果没有办法做到这一点,那为什么呢?如果有办法做到这一点,为什么默认不实现呢?

4

2 回答 2

1

主要问题是为什么您的构建工具需要更长的时间。如果是因为分支之间不同的文件需要重新构建,构建工具或者Git应该如何防止呢?如果这是您的问题,您可以使用git worktree为不同的分支添加多个工作树。

于 2017-01-25T13:33:02.853 回答
0

我不完全确定“就构建系统而言,存储库的状态”是什么意思;我假设您要说的是您更改为另一个分支,然后无需构建切换回来-但是这样做会更改源文件上的时间戳,因此 make 认为它必须重建所有内容...

IMO 最简单的解决方案是使用两棵工作树——一棵保留在“通常处于焦点的分支”上,另一棵用于浏览其他分支。这可以通过克隆 repo 两次或使用git worktree命令来完成。

我不知道 git 有什么方法可以将源时间戳设置为切换分支之前的状态。为什么不?因为以一种通常有用而又不会引起问题的方式实现它可能是不可能的。

于 2017-01-25T13:36:14.787 回答