5

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

git checkout --orphan <new_branch>

但是,这使用了我当前的工作树,我想完全保持原样。我试过了:

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

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

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

4

2 回答 2

8

制作一个带有分离头的工作树,然后将其孤立:

git worktree add --detach /.../dir
cd /.../dir
git checkout --orphan branch
于 2018-12-25T06:03:21.797 回答
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,你需要一个更新的版本。

于 2018-10-26T11:05:50.953 回答