这些词在 Git 中意味着什么: 存储库、 fork、分支、克隆、跟踪?

说实话,我不太清楚这里的语义。它们都是关于代码 + 历史单元的副本/变体,但是过去我不确定我能说什么。这个逻辑结构有什么解释吗?

58202 次浏览

存储库仅仅是存储工作历史的地方。它通常位于工作副本的 .git子目录中——您正在处理的文件的最新状态的副本。

为了分支一个项目(在某个时间点从某人的存储库获取源代码,并对其应用您自己的分歧更改) ,您需要克隆远程存储库来创建它的副本,然后在本地存储库中完成您自己的工作并提交更改。

在存储库中,您有分支,它们实际上是您自己的存储库中的分支。您的分支将在您的存储库中有一个祖先提交,并且将随着您的更改而偏离该提交。稍后可以合并分支更改。分支允许您同时处理多个不同的特性。

您还可以跟踪远程存储库中的各个分支。这允许您从另一个人的分支中获取更改,并将它们合并到您自己的分支中。如果您和一个朋友正在一起开发一个新特性,这可能会很有用。

网上有很多很棒的 Git 书籍。看看 ProGitGit Magic开始,以及官方教程和社区书籍。

我将用 RTFM 来回答我自己的问题。

但是,阅读 这个精细手册。正如作者所说:

“我从中得出的结论是,只有了解 Git 的工作原理,才能真正使用 Git。仅仅记住你应该在什么时候运行什么命令在短期内是有效的,但是你被卡住或者更糟糕的是,破坏某些东西只是时间问题。

“不幸的是,Git 上现有资源的一半都采用了这种方法: 它们指导您在什么时候运行哪些命令,并期望您只要模仿这些命令就可以做得很好。另一半的内容确实介绍了所有的概念,但从我看到的情况来看,他们解释 Git 的方式假设您已经理解了 Git 是如何工作的。”

这个 GoogleTechTalk 是对 Git 的一个极好的介绍,在学习 Git 语言的同时,可以了解幕后到底发生了什么。Git 的一个早期贡献者在2007年做了这个演讲,作为 Git 入门的一种方式。如果你观看这个演讲,你不仅会知道每个单词是什么,比如存储库、分支、分支等等,而且你还会知道当每个单词被创建、合并等等时,幕后发生了什么。

地址很长,但信息量很大。它还将 Git 与其他版本控制系统进行了对比,这样您就可以深入了解为什么要创建 Git,以及它相对于其他控制系统的比较优势是什么。即使谈话是老的,它是非常有益的启动和运行。我会在看手册之前先看看这个。我相信事情会因此变得更有意义。