我想了解 Git 中分支、叉子和克隆之间的区别?
同样,当我做 agit fetch而不是 a时,这意味着什么git pull?
git fetch
git pull
rebase另外,与 相比是什么意思merge?
rebase
merge
我怎样才能将个人的承诺挤在一起?
它们是如何使用的,为什么使用它们以及它们代表什么?
GitHub 是如何出现的?
克隆只是存储库的副本。从表面上看,它的结果等同于svn checkout从其他存储库下载源代码。像 Subversion 这样的集中式 VCS 和像 Git 这样的 DVCS 之间的区别在于,在 Git 中,当您克隆时,实际上是在复制整个源存储库,包括所有历史记录和分支。现在,您的机器上有一个新的存储库,您所做的任何提交都会进入该存储库。在您将这些提交推送到另一个存储库(或原始存储库)或有人从您的存储库中提取提交(如果它是可公开访问的)之前,没有人会看到任何更改。
svn checkout
分支是存储库中的东西。从概念上讲,它代表了一条发展的线索。您通常有一个 master 分支,但您也可能有一个分支正在处理某些功能 xyz,以及另一个用于修复错误 abc 的分支。当您签出一个分支时,您所做的任何提交都将保留在该分支上,并且不会与其他分支共享,直到您将它们与相关分支合并或重新定位到相关分支上。当然,在您查看分支如何实现的底层模型之前,Git 在分支方面似乎有点奇怪。与其自己解释(我已经说得太多了,我想),我将链接到 Git 如何建模分支和提交的“计算机科学”解释,取自 Git 网站:
http://eagain.net/articles/git-for-computer- scientists/
分叉实际上不是 Git 概念,它更像是一种政治/社会理念。也就是说,如果有些人对项目的进展方式不满意,他们可以获取源代码并自己独立于原始开发人员进行处理。那将被视为叉子。Git 使分叉变得容易,因为每个人都已经拥有自己的源代码“主”副本,因此它就像与原始项目开发人员切断联系一样简单,并且不需要像使用 SVN 那样从共享存储库中导出历史记录.