我有一个项目需要几分钟才能编译。通常我会这样做:
$ git worktree add --detach ../my-project-build HEAD
然后我在my-project-build
有另一个终端窗口进行编译。当我完成后,我删除了目录。
如何从我的工作目录创建工作树(包括未提交的更改和未跟踪的文件)?
答案 0 :(得分:2)
简短的回答是你无法做到。 git worktree add
命令使用git checkout
填充新工作树,而git checkout
只能读取提交。 1
您可以做的是对当前工作树进行归档(tar
或rar
或其他) - 可能不包括.git
目录或文件 - 并提取该归档在其他地方,甚至可能在一个附加的工作树上(如果你愿意,可以分开)。只要您的归档程序保留时间戳和文件,您就可以得到您想要的内容。有几个归档工具只能从一个树复制到另一个树,例如rsync。
1 从技术意义上说,可以通过索引读取特定的git add
个ed文件,但实际上这太难了,并且它根本不包括未跟踪的文件。