Bounty短描述
有没有一种可移植的方法可以使用一个仓库并具有多个检出?作为多个克隆的替代方案,其中存在太多开销(推送/拉取/同步...)和覆盖.git/objects
硬链接的风险(在Windows上甚至无法工作)。
对git新手而言,很好奇从有经验的git用户那里听到他们的想法。
是否有一个概念上的原因,为什么git一次只能处理一个分支?当我大多数时候需要同时处理至少两个不同的分支时,反复切换分支似乎绝对不切实际,例如构建、并行运行等。
好吧,也许开发人员不需要真正同时在两个分支上工作。但是检出另一个分支不会自动带上被忽略的内容,比如构建输出文件,所以需要重新构建等。
有这个脚本git-new-workdir
,它应该允许多个工作分支,但首先,它不是git发布的一部分,尽管它已经存在了约3年,所以我不相信它能保持我的文件一致性。而且,我无法在Windows分发中找到它,这是我用于开发的机器之一。
因此,唯一的官方选项是为每个分支创建一个新的“克隆”,这似乎是不正确的,因为每个克隆都是一个完整的仓库。我甚至不知道该如何命名克隆目录——我使用仓库名称还是分支名称或两者兼有?如果我从该分支创建另一个分支,会怎么样等等。
实际用例更新(@Philip建议)
我通常会同时处理两个主要/次要版本,其中功能并行运行。还有一个偶尔的开发分支,在将来合并到某个发布版之前,实验性功能会进入该分支。
在功能开发期间,通常会出现行为下降的情况,因此将其与更改前的行为进行比较更有效。检查先前的分支/修订版并不足够好,因为很多时候这意味着需要同时在硬盘上检出两个版本进行调试。因此,更方便和自然的方法是在各自的目录中保留几个所谓的“活动”分支,并检出它们各自的已编译二进制文件。这也可以节省编译时间和偶尔的本地设置(即需要在每次检出后更改的配置文件以使产品运行)。