2015-06-16 34 views
0

我是GitHub的新手,我不完全明白分支是什么。我感觉它就像一个文件夹。请解释一下:文件夹和分支之间究竟有什么区别?在GitHub存储库中,分支与文件夹有什么不同?

+0

你是什么意思的“文件夹”?你能详细说明吗? –

+2

这不是你能从这里快速回答中得到的东西。你的问题背叛了对基础知识的缺乏理解。我建议你花一些时间浏览像git book这样的综合git教程(https://git-scm.com/book/en/v2)。这应该让你启动并运行。 –

+0

另请参阅http:// stackoverflow。com/a/2107672/6309 – VonC

回答

0

阅读article了解github是如何工作的。

一个分支就像一个正在进行的工作,你制作一个主代码(或其中的一部分)的副本进行更改(添加新功能或修复一个bug),并且当你测试它时,将它合并回主分支。所以整个想法基本上都有一个开发分支和一个稳定的工作分支,如果在变化过程中出现问题,您可以使用它。

+0

如果链接中断,您的回答会发生什么? – Maroun

+0

虽然你的回答没有错,但我不认为它回答OP。 –

0

某种程度上,它们都是一组文件。但是,它们的概念来自不同的环境,使用方式非常不同。

A 文件夹是文件系统的一个功能。我希望我不必多说,因为这是一个基本的计算概念。您可以嵌套文件夹,并且它们没有关于版本控制系统的特殊功能(主要是历史记录)。

A 分支是版本控制系统的一个功能。它允许您一次管理更多的开发任务。它们包含历史记录,您可以随时检查他们从哪个提交中转移。但是,你不能将它们嵌套在Git中。

我会开始学习如何在Git上使用分支https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging

2

迄今为止的回答很好;我会补充我的两分钱。你已经知道一个文件夹是什么,所以接下来我们必须考虑一下提交是什么。提交是一个文件夹的快照 - 特别是某个时间点存储库的根文件夹。一个分支只是一个指针来提交。从优秀Git book看看下面的图片:

enter image description here

在这张图片中,灰色框的提交。你可以看到每个人都有自己的主文件夹快照。橙色框是分支 - 注意它们如何只是指向提交的指针。在这种情况下,有两个分支(v1.0master),它们都碰巧指向相同的提交。 HEAD指向您当前所在的分支。因此,如果您要在上述情况下作出新承诺,master将指向新承诺,其父承诺为f30abv1.0仍然会指向f30ab

因此,尽管分支可以在某种程度上像文件夹一样行事,因为不同的分支可以“包含”不同的(版本)文件,实际上它是包含这些不同(版本)文件的不同提交,提交。

顺便说一句,正如其他人所提到的,你应该真的阅读Git book。在了解基础知识的基础上,使用Git更加愉快。

+0

+1在阅读Git书籍时,它不仅能够帮助您理解内部结构,而且还能够推断其命令和工具的作用以及何时使用它们。值得一小时左右阅读。 –

相关问题