3

假设我有一个带有 2 个分支的 git 存储库:

  • 1.0-集成
  • 2.0-集成

我必须在两个分支中工作,因为我们维护我们产品的 2 个版本。

同时,我在其他项目中使用该产品,例如,我希望在我的 IDE 中提供可用于完成的源代码。

你知道在我的文件系统的某个地方创建一个 1.0_shortcut 目录的方法(我在 linux 上,并且符号链接可用)总是指 1.0-integration 分支,另一个 2.0_shortcut dir 指的是 2.0-integration 分支,无论我的主仓库中的已签出分支如何?

注意:我考虑过使用

  • git-new-workdir,但文件不会自动同步(当我在我的主仓库上的分支 1.0-integration 上提交一个文件时,除非我在 1.0_shortcut 目录中这样做,否则该文件在 1.0_shortcut 目录中不可用git reset --hard
  • git clone --shared,但文件不会自动同步(当我在我的主仓库上的分支 1.0-integration 上提交一个文件时,除非我在 1.0_shortcut 目录中这样做,否则该文件在 1.0_shortcut 目录中不可用git fetch origin && git checkout origin/1.0-integration

经过更多探索,并在@Michael 的帮助下,我认为这没有什么魔力……可接受的解决方案(根据我自己的需要,其他一些解决方案可能满足您的需要)是:

  • 通过主要分支(1.0*、2.0*、...)获得一个工作目录git-new-workdir
    • 优点:
      • 设置简单
      • 在存储方面高效(只有一个用于 blob 的存储库)
      • 轻松访问每个主要版本
    • 缺点:
      • 你必须认真对待你最终在每个工作目录中签出的内容(没有什么能阻止你在 1.0 工作目录中签出 2.2
      • 您不能合理地为每个标签拥有一个工作目录
  • 编写一些钩子来创建这些目录
    • 优点:
      • 完全可定制
    • 缺点:
      • 使用大量存储空间
      • 写得很讲究
4

0 回答 0