使用 git 的工作流程 2.5 用于使用 'git worktree' 的多个工作目录

work flow for using git 2.5 for multiple work directories using 'git worktree'

作为 git 的新手,我想大致了解一下如何为一个 git 中心项目的不同分支使用多个工作目录。 特别是我 want/need 在两个分支上工作 - 一个 'master' 另一个是维护版本,比如 maintenance/project1。 计划是 运行 Linux/Mint 17.2 下的工作。 另外,我想利用 2.5 中引入的最新 git 工作树功能。

假设我有一个 github 帐户,已经从主项目中 fork 我自己的 fork,并将 fork 克隆到我在 ~/user/myproject.

中的本地机器

就目前情况而言,我不希望通过 git 推送贡献代码,我的所有工作和测试结果将通过电子邮件传递给其他人以寻求可能的修复 - 这样做通过 git 可能会很好,但没有必要开始。

我认为需要一组相应的 git 命令的步骤是:

Creating the two work trees

  1. git 克隆 https://github.com/someone/someproject.git

    (这将在 master 分支上为您提供目录 someproject

  2. cd someproject; git worktree add ../someproject-devel devel

    (这将在 devel 分支上为您提供目录 someproject-devel,假设存在这样的分支)

Switching between these trees

只需使用cd命令。

Keeping both trees up-to-date with the upstream master

只需 cd 在适当的目录和 运行 git pull。首先在主工作树中执行此操作可能是最好的,但不是必需的(手册页没有具体解决这个问题,我也没有详细研究工作树的实现。如果存在问题,那只是最佳选择之一使用 space,而不是功能)。

any other cautions/ special considerations for working this way.

来自手册页:

   Multiple checkout in general is still experimental, and the support for
   submodules is incomplete. It is NOT recommended to make multiple
   checkouts of a superproject.