Git拉动非工作分支而不切换

Joh*_*oks 7 git branch cherry-pick git-cherry-pick

我们有一个开发分支,它是我们的主人和一个单独的维护分支.当我修复bug时,我经常需要从主服务器到维护服务器进行提交,反之亦然.通常我通过执行以下程序来实现这一目标......

  1. 在主分支上提交
  2. 将提交推送到远程
  3. 切换/检查到维护分支
  4. Cherry - 从第1步中选择提交
  5. 构建并确保一切仍按预期工作
  6. 将维护提交推送到远程

我遇到的问题是因为分支已经变得非常不同我每次切换时都需要重建整个项目,这需要花费10分钟.这是预期的,但我不想这样做,因为我经常在分支机构之间切换.所以为了避免这种情况,我创建了第二个工作目录,以便为每个分支创建一个目录.这个问题是我无法将原始的主提交选择到维护目录中,直到我将该提交从远程提取到维护目录的主分支.当我这样做时,我必须完全重建.

有没有办法将提交拉入我的维护目录的主分支而不切换?或者,有更好的方法完全这样做吗?我们最近从CVS切换到Git,所以我对它并不熟悉.

use*_*253 0

我想您想要的是多个工作目录,每个工作目录专用于具有自己的构建目录的给定分支。在这种情况下,您将获得一个附加有多个工作目录的存储库,因此,如果您在一个目录中执行更改(提交或提取等),则该更改对所有其他工作目录立即可见。

如果您git足够新鲜(> = 2.5),您可以使用git worktree,请参阅本教程以获取更多信息。

否则(git < 2.5),您可以从 git contribs 中选择git-new-workdir脚本并使用它。