如何在不使用make进行重建的情况下使用git checkout

时间:2018-12-20 14:19:41

标签: git makefile

自从我开始使用git以来,我已经养成了存储其他分支和标签的可执行文件的习惯。原因是我不想麻烦检出分支,构建可执行文件,然后被迫检出我的工作分支并重建所有内容。在大型存储库上,这可能会花费一些时间(在我当前的项目中为10分钟)。

当其他版本控制的文件与我的二进制文件交互时,可能会发生问题。我当前的示例是openGL着色器,它是在运行时读取和编译的。即使我有相关分支中的二进制文件,执行也会出错,因为我的着色器文件已更改。

解决方案1:检出原始分支,因为这将更改着色器文件。

  • 需要在我的工作分支上进行提交或隐藏。
  • 当我切换回工作分支时,回购中的所有文件都已修改,因此调用 make 会强制进行完全重建。

解决方案2:仅从相关分支中检出着色器文件,然后运行可执行文件。

  • 需要在我的工作分支上进行提交或隐藏。
  • 忘记手动检出的文件的风险很高。我必须自己跟踪它们,确保在继续工作之前先恢复工作分支。

解决方案3:克隆存储库,只是保留该特定分支的可执行文件。

  • 每个克隆都将占用空间(在我的情况下为15 GB)。
  • 在更新各个分支机构时,必须管理所有这些存储库

如果 make 的工作方式有所不同,则将避免所有这些情况。如果使用文件的某种哈希描述而不是操作系统时间戳。但是,当您复制文件时,有多种方法可以保留“修改日期”。我想知道我是否可以用git做到这一点。如果是这样,我可以检出分支,运行可执行文件,然后再次检出我的工作分支,而不会使存储库中的所有文件无效,因此 make 不会触发完全重建

0 个答案:

没有答案