Git的一些简单说明
Git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux
kernel这样的大项目来说自然很重要。Git最为出色的是它的合并追踪(merge tracing)能力。
原本Git的使用范围只适用于Linux / Unix平台,但在Windows平台下的使用也逐渐成熟,这主要归功于Cygwin、msysgit环境与TortoiseGit这样易用的GUI工具。其实Git的源代码中已经加入了对Cygwin与MinGW编译环境的支援,且逐渐完善,为Windows使用者带来福音。
关键词:[Cygwin]、[msysgit环境]、[TortoiseGit]
实现原理:
Git和其他版本控制系统(如CVS)有不少的差别,Git本身关心档案的整体性是否有改变,但多数的CVS,或Subversion系统则在乎档案内容的差异。因此Git更像一个档案系统,直接在本机上取得资料,不必连线到host端取资料回来。(SVN的Revert功能应该属于这个范畴,但是如果要取得某一个版本的话,必须连接服务器)
库结构(.git文件夹):
- hooks:存储钩子的文件夹
- logs:存储日志的文件夹
- refs:存储指向各个分支的指针(SHA-1标识)文件
- objects:存放git对象
- config:存放各种设置文档
- HEAD:指向当前所在分支的指针文件路径,一般指向refs下的某文件