01. Git Hello Git

木有大项目经验,用过一点点SVN.经常在GitHub上Clone别人的代码. 花了一些时间开始看《Pro Git》,记下笔记.

《Pro Git》 下载链接: http://vdisk.weibo.com/s/hk3JX

1.Git
2005 年的时候,开发BitKeeper 的商业公司同Linux 内核开源社区的合作关系结束,他们收回了免费使用BitKeeper 的权力。这就迫使Linux 开源社区(特别是Linux的缔造者Linus Torvalds )不得不吸取教训,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。于是乎,Git 就诞生了…什么是大牛…

1.1直接快照,而非比较差异
Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。这类系统(CVS,Subversion,Perforce,Bazaar等等)每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容.
<缺图>
Git 并不保存这些前后变化的差异数据。实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一连接。
<缺图>

1.2近乎所有操作都可本地执行
在 Git 中的绝大多数操作都只需要访问本地文件和资源,不用连网。但如果用 CVCS 的话,差不多所有操作都需要连接网络。因为 Git 在本地磁盘上就保存着所有有关当前项目的历史更新,所以处理起来速度飞快
暂时的理解:有关于自己的工作内容,可以在不联网的情况下版本控制.但需要和别人交叉的时候呢?其实Git比SVN多了一步. 所有的修改,都会先提交给本地的Repository,类似自己维护自己那份代码.而本地的操作是不需要联网的.只有最后在提交给远端服务器时,连接一下.

1.3 Git三种状态.
已提交commited/已修改modified/已暂存staged
已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。Git
由此我们看到 Git 管理项目时,文件流转的三个工作区域:Git 的本地数据目录,工作目录以及暂存区域。(最后应该有个远端目录.?)
<缺图>

2.Git 可能用到的软件.
Windows:
msysgit http://code.google.com/p/msysgit/
SVN 2 Git http://code.google.com/p/tortoisegit/

Ubuntu:
sudo apt-get install git
sudo apt-get install git-core

Eclipse:

http://download.eclipse.org/egit/updates

3.配置信息

这两条配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录. 而且是和Github你的账号相对应的.
$ git config –global user.name username
$ git config –global user.email [email protected]

还有配置你的文本编辑器等设置,你就自己发掘吧.

配置信息的级别.(暂时还没用到. 就直接global就好了.)
–system :针对整个系统. (我没找到这个路径…)
–global :用户目录下的. e.g. win7–>>C:\Users\用户名\.gitconfig
:针对当前项目. e.g. win7–>>~\项目文件夹\.git\config

查看配置信息.
$ git coonfig –list

End.

你可能感兴趣的:(01. Git Hello Git)