这些词在Git中意味着什么:Repository,fork,branch,clone,track?

问题描述:

我老实说,在这里的语义不清楚。它们都是关于代码+历史单元的副本/变体,但过去我不确定我可以说。这个逻辑结构是在什么地方解释的?这些词在Git中意味着什么:Repository,fork,branch,clone,track?

+5

我会推荐阅读Pro Git书的前几章(http://progit.org/book/)。 – ewall 2010-05-26 21:15:41

+56

+1。很多git教程都会告诉你如何执行某些任务,而不必解释某些单词的含义或git如何工作。要求解决这些问题的资源是一个合理的问题。 – 2010-05-26 21:36:35

+12

希望我能+1更多的丹尼尔的评论。虽然某些术语(例如存储库)的含义应该是显而易见的,但它们之间的关系并不总是(分支与分支),真正的含义很容易被习惯于集中式VCS的人误解。另外,请看Pro Git的“什么是分支?”部分 - 一个基本的用户是否真的想知道blob和树木,还是只想定性知道分支是什么? – Cascabel 2010-05-27 12:27:00

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

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

在存储库中,您拥有分支,这些分支在您自己的存储库中是有效的分支。您的分支将在您的存储库中有一个祖先提交,并将与您的更改分开。您可以稍后合并您的分支更改。分支让您一次处理多个不同的功能。

您还可以跟踪远程存储库中的各个分支。这允许您从其他人的分支中引入更改并将其合并到您自己的分支中。如果你和一个朋友一起工作一个新功能,这可能会很有用。

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

+0

当然阅读F手册和教程是最基本的。但是,在我看来,这是对整个事物的一个很好的总结。非常感激! – brasofilo 2012-06-02 11:29:41

+0

请注意,您可以将本地工作目录切换到新分支(“git checkout ”)。在这种情况下,您本地工作目录的文件将被您切换到的分支的内容替换。但是你不会放松你的工作:Git将你在Git“数据库”(隐藏的.git文件夹)中的前一个分支所做的所有更改(“git commit”)存储起来,并且可以让你切换回文件。 – KrisWebDev 2013-06-24 12:57:34

+3

我认为需要特别提及的是,无论您使用哪种VCS,分叉和分支都被认为是两个单独的事物。分支被认为是有利的,并暗示了开发者之间的一致。分叉更加严重,因为这意味着参与项目的开发人员不同意某些事情并决定分道扬some。当双方达成协议后,成功的分支机构通常会在稍后合并为一个项目。从那以后,Git(和GitHub)已经模糊了这些术语,这两个术语基本上代表了相同的想法,但方式不同。 – redteam316 2014-01-27 14:39:45

我要用RTFM回答我自己的问题。

但是,阅读this罚款手册。正如作者所说:

“我从中得出的结论是,如果您了解Git的工作方式,那么您只能真正使用Git。仅仅记住你应该在什么时候运行哪些命令将在短期内运行,但在卡住或者更糟糕的是破坏某些东西之前,这只是一个时间问题。

“不幸的是,Git上的一半现有资源只采用这种方法:它们会引导您通过哪些命令运行,并期望如果您只是模仿这些命令,就应该做得很好。另一半确实贯穿了所有的概念,但是从我所看到的,他们以一种假定您已经了解Git如何工作的方式来解释Git。 ”

+0

此介绍似乎已转移到http://www.sbf5.com/~cduan/technical/git/。原始网址现在仍然有效。 – 2012-06-12 15:19:53

+1

这在上下文中是正确的。如果你需要立即生产或者只是检查代码,那么不要对git的工作有深入的了解。教程很好。这就是我进入git的方式。但是,如果您需要更高级的创建分支,分叉,重定位以及其他更高级的任务,那么您必须知道git是如何工作的,特别是如果您的背景处于集中式源代码管理中。 – Phil 2015-10-29 17:29:29

This GoogleTechTalk是一个奇妙的介绍Git学习幕后实际发生的事情,同时学习语言也。它是由Git的一个非常早的贡献者提供的,他在2007年作为向Git引入的一种方式发表了这个演讲。如果你看这个演讲,你不仅会知道每个单词是什么,例如存储库,分支,分支等,但是你也会知道幕后发生的每一件事情是什么时候发生的,合并等。

地址很长,但信息量很大。它还将Git与其他版本控制系统进行了对比,以便您了解为什么Git的创建方式以及它与其他控制系统相比的优势。尽管谈话很旧,但启动和运行非常有帮助。在我跳入手册之前,我会看这个。我相信事情会变得更有意义。