仓库和工作树有区别吗?
这两个定义告诉我们工作树和仓库是项目的文件。
Github中的repository定义:
存储库包含项目的所有文件以及每个文件的修订历史。您可以在存储库中讨论和管理项目的工作。
即“craftquest”网站中的工作树定义:
Git中的工作目录树是你的文件系统上的一个目录(及其文件和子目录),它与一个存储库相关联。
仓库和工作树有区别吗?
这两个定义告诉我们工作树和仓库是项目的文件。
Github中的repository定义:
存储库包含项目的所有文件以及每个文件的修订历史。您可以在存储库中讨论和管理项目的工作。
即“craftquest”网站中的工作树定义:
Git中的工作目录树是你的文件系统上的一个目录(及其文件和子目录),它与一个存储库相关联。
3条答案
按热度按时间zazmityj1#
您可以将存储库视为项目的“数据库”,它存储所有文件以及对这些文件的更改历史。
另一方面,工作树,也称为工作目录,是对应于项目的单个 checkout /版本的文件集。
主要区别在于其功能:仓库(在像Git这样的版本控制系统中)用于存储和跟踪项目的历史版本,而工作树是项目的当前可编辑副本。
vx6bjr1n2#
不要忘记,正如我在Git 2.5 (July 2015)中提到的,您还拥有多个工作树。
一个git仓库可以支持多个工作树,允许你一次 checkout 多个分支。
使用
git worktree add
,一个新的工作树与存储库相关联。这个新的工作树被称为“链接工作树”,与“
git init
”或“git clone
”准备的“主工作树”相对。一个仓库有一个主工作树(如果它不是裸仓库)和零个或多个链接的工作树。
lf5gs5x23#
它们是完全不同的东西。
我的https://www.biteinteractive.com/picturing-git-conceptions-and-misconceptions/:
我喜欢说Git实际上有三个世界:
仓库。我把仓库想象成(主要)由存储的提交组成。这些是反映你工作过去版本的 * 快照 *。
索引。这是您配置要进入 * 下一次 * 提交的内容的地方。
工作树这些文件是Git从仓库借给你的,这样你就可以编辑它们,然后将它们添加到索引中,以便告诉Git索引(以及下一次提交)应该是什么样子的。工作树是该空间坐标系中唯一可以直接看到的部分。