首页 > 解决方案 > 两个不同的 Windows 桌面上有两个 git 分支?

问题描述

您可以在两个不同的 Windows 桌面(同一台计算机,只是不同的桌面)上签出两个单独的 Git 分支吗?

标签: windowsgitcheckoutdesktopgit-checkout

解决方案


这有点像一个有窗户的房间。观察者可以通过不同的窗户看到同一个房间。当观察者将一块石头扔进房间时,其他人也可以看到这块石头。

我相信你知道同名的两个文件不能存在于同一个目录中。此外,像 HEAD 这样的 ref 不允许同时指向两个或多个 ref 或提交。所以我们不能在同一个工作树中同时检出两个分支。master 的 foo.txt 说“Hello World”,而 release 的 foo.txt 说“Hallo Welt”。如果我们可以同时检查它们,您可以想象我们将面临哪些问题。

通过“访问”,如果您的意思是只读的,那么我们根本不需要工作树。git log、git rev-parse、git cat-file 等命令访问 git 数据库中的对象。当然,读取像 foo.txt 这样真实和熟悉的文件比读取像 .git/objects/55/7db03de997c86a4a028e1ebd3a1ceb225be238 这样的普通 blob 要方便得多。命令“git worktree”可以将分支检出到不同的工作树中,这样我们就不必进行多次克隆。当 repo 非常大时,它会很有帮助。如果 git 版本太旧,无法支持“git worktree”,我们可以做一些浅克隆或从现有的本地 repo 中克隆,小而快。


推荐阅读