我们有一个开发分支,它是我们的主分支,也是一个单独的维护分支。修复错误时,我经常不得不从主服务器到维护服务器选择提交,反之亦然。通常,我通过执行以下过程来完成此任务...

  • 在master分支上提交
  • 将提交推送到远程
  • 切换/ checkout 到维护分支
  • Cherry-pick从第1步提交
  • 生成并确保一切都按预期的方式工作
  • 将维护提交到远程

  • 我遇到的问题是,因为分支之间的分歧很大,所以每次切换最多需要10分钟,因此我必须重新构建整个项目。这是预料之中的,但是我不想这样做,因为我经常在分支之间切换。为了避免这种情况,我创建了第二个工作目录,以便为每个分支都有一个目录。这样做的问题是,直到我从远程将提交提交提交到维护目录的master分支中之前,我无法将其提交到维护目录中。当然,当我这样做时,我必须完全重建。

    有没有一种方法可以在不切换的情况下将提交提交到维护目录的master分支中?或者,是否有更好的方法可以完全做到这一点?我们最近从CVS切换到了Git,所以我对此并不熟悉。

    最佳答案

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

    如果您的git足够新鲜(> = 2.5),则可以使用git worktree,有关更多信息,请参见this tutorial

    否则(git git-new-workdir脚本并使用它。

    10-06 13:54
    查看更多