从我在这里看到的情况来看,我无法一次实际查看来自不同分支的文件,但我只是好奇他们在系统中实际进入分支时的位置。
是的,你可以做到这一点
你只需要按照这样的:
Git有名字git workdir
下暴露这一功能早在2007年。它位于git contrib文件夹下多年。
在git 2.5版中,它被公开为git worktree
。它允许你在多个分支上同时工作。
如何做到这一点?
# create a new working directory
# the path will be added and the given branch name will be checkout out
git worktree add <path to the new working directory/ branch name>
# now you have 2 folders with different branches in each one of them.
# if you used something like `git worktree /tmp/aaa` than you will have
# branch aaa checked out in the new folder and you can switch to any branch
# you wish
每个worktree
都有自己的3-状态,以便你不能多个worktrees同一个分支。
例如:
git worktree add <second path>
将创建您的电脑,让你可以使用不同的分支同时工作在另一个文件夹。
git worktree
将创建2个单独的工作文件夹,指向同一个存储库时彼此分开。
这将允许您对新工作树执行任何实验,而不会对存储库本身产生任何影响。在附加图片中,您可以看到有2个独立的工作文件夹,但它们都使用单个回购并共享内容。
下面是关于如何创建新worktree样本,什么是它的结果:
我认为这个问题是*“你在哪里的文件走” *但只提到的文件夹包含哈希快照,这很简单。还有更多......魔术发生在这个过渡的幕后,这将会产生更好的答案。 –
是的,你说得对。这是一个粗劣的答案。我花了更多的精力来解释'.git /'中还有哪些内容,以及如何深入了解对象。你认为还有什么可以使用改进? – pnovotnak
@pnovotnak阅读'Git Internals'是许多问题的最佳答案。 – ElpieKay