git过程,git的故事
资料来源:http://www.infoq.com/cn/news/2011/01/git-adventures-1
Git是由Linus发起和开发的开源分布式版本控制系统(DVCS)。Torvald来管理Linux内核。自2002年以来,Linux内核一直使用BitKeeper进行版本管理,但在2005年BitKeeper和Linux
开源社区之间的合作结束,BitKeeper无法再免费使用,这迫使Linus决定在开源社区开发自己的版本控制系统。
SVN和CVS等传统版本控制系统只有一个存储库,用户必须连接到这个存储库才能开始提交。对于分布式版本控制系统如Git(包括BitKeeper,Mercurial等。当然),它的每个工作目录都包含一个完整的仓库,可以支持离线工作。首先,工作被提交到本地仓库,然后提交到远程服务器上的仓库。分布式处理也使开发更加方便。开发人员可以轻松地在本地创建分支,用于日常开发。大家的本地仓都是平等独立的,你的本地提交不会直接影响到别人。
老实说,Git是我用过的最快的版本控制系统(SVN Mercurial Git)。我这里说的速度包括本地提交、本地结账、提交到远程仓库(git push)和从远程仓库获取(git fetch、git pull);其本地运行速度与本地文件系统处于同一水平,远程仓库运行速度与SFTP文件传输处于同一水平。当然这和Git的内部实现机制有关,这里就不展开了。感兴趣的朋友可以看看这里:Git是下一个Unix。
当我们学习一门新的语言时,我们经常从一个“hello world”程序开始,所以Git过程是从一个“hello Git”开始的。
这里假设所有学生的电脑都安装了Git。如果没有,可以先看看这里(安装Git)。当然,下面的章节将专门讨论安装过程中可能遇到的问题。
首先我们打开Git的命令行:在windows下,点击“Git Bash快捷方式”;Linux或者Unix之类的平台,直接打开命令行界面就可以了。
注意:$符号后的字符串代表命令行输入;输入命令行后以#开头的粗体字符串表示注释;其他部分是命令行输出。
让我们先建一个仓库:
好了,前三行命令建立了一个本地Git存储库。这个仓库现在是一个空仓库。
我们在命令行执行:
现在让我们给这个仓库添加一些东西。
好的,文件会暂存在暂存区,现在可以提交到仓库了:)
现在,如果您执行git log命令,您将看到刚才的提交记录。
字符串“8223 db 3b 064 a 9826375041 c8 FEA 020 CB 2 e 3 b 17d 1”是我们这次创建的提交的名称。看起来眼熟吗?如果你经常使用电驴,你的朋友会发现它和电驴里的内容标识符是一样的,都是SHA1字符串。Git对提交的内容执行SHA1散列操作,以获得它们的SHA1字符串值,这些值被用作每个提交的惟一标识。根据密码学的一般原理,如果两个提交物不同,那么它们的名字就不会相同;相反,如果它们的名称相同,则说明它们的内容相同。
现在我想更改仓库中文档的内容,并提交给仓库。
好的,既然我们在仓库修改了提交的文件,我想看看我们。
在决定是否提交之前,你修改了什么?
很好,正如我们所希望的,我们只是在readme.txt的最后一行增加了一行“Git很酷”
好了,现在让我们把readme.txt放到临时存储区:
现在让我们来看看仓库的状况:
您可以提交:
再次查看新日志:
" 45f 89198 f 08365 BFF 32364034 aed 98126009 e44 "这是我们刚刚提交修改时创建的提交。
一路看下来大家都有点疑惑。然而,这并不重要。如果你的电脑安装了Git,那么你只要执行一次上面所有的命令,就会对它有一个感性的认识。
在接下来的章节中,我会谈到如何在windows和Linux上安装和配置Git,以及需要注意的问题:)