在新的工作树中检出孤立分支

时间:2018-10-26 09:40:42

标签: git git-checkout git-worktree

我知道可以像这样创建一个新的孤立分支:

git checkout --orphan <new_branch>

但是这使用了我当前想完全不动的工作树。我尝试过:

git --work-tree=/tmp/test checkout --orphan <new_branch>

但这似乎也使用了我当前的工作树,而不是我使用--work-tree指定的树。

我可以使用第二个克隆,但这似乎不是最佳选择。有什么解决方法可以使用工作树?

2 个答案:

答案 0 :(得分:1)

您可以尝试git-worktree

git checkout --orphan <new_branch>
git commit
git worktree add /tmp/test <new_branch>

# switch to the previous branch
git checkout -
# or
git checkout <previous_branch>

cd /tmp/test
# do something to <new_branch>

现在/tmp/test是一个子工作树。它与主工作树共享相同的.git。如果您不再需要子工作树,则只需删除/tmp/test。新的提交存储在主存储库中。

如果您的Git尚不支持git-worktree,则需要更新的版本。

答案 1 :(得分:1)

制作一个头部分离的工作树,然后使其孤立:

git worktree add --detach /.../dir
cd /.../dir
git checkout --orphan branch