Git教程(一):git介绍来源: 发布时间:星期日, 2009年12月20日 浏览:0次 评论:0
欢迎来到github学习教程第课本教程将通过系列例子来介绍如快速轻松地使用Git教程中会有很多屏幕截图希望这样可以让你更好学习和理解
本节简要介绍git概念和为什么应该使用它 git是个快速开源分布式版本控制系统因此它在(开源)和(协作编程社区)很快取代了svn 版本控制系统 首先git是个版本控制系统用来保留工程源代码历史状态命令行工具类似于SVNCVS或者Perforce等工具 当你需要得到以前个保存点时你可以利用它来追踪项目中文件并且得到某些时间点提交项目状态你可以和合作伙伴共享这些历史状态将他们工作和你工作进行合并可以对整个工程或某些文件跟历史版本进行比较或者恢复到早期某个版本 git根本上说是个命令行工具所以本教程中大部分举例都会用命令行方式给出教程中使用现行git版本(1.6系列)编写举例如果使用早期版本话我们也建议您升级到1.6系列当然现在已经有很多git UI工具使得git变得更加简单易用 git安装: 下载地址 http://www.kernel.org/pub/software/scm/git/ 安装过程: 1.$ tar xzvf git-1.6.5 2.$ cd git-1.6.5 3.$ ./config --prefix=/usr/local 4.$ make 5.$ sudo make 6.$ git --version 如果需要命令帮助话可以键入'-help'就会显示出 操作手册你也可以键入'git help command'实现同样目 $ git log --help $ git help log 开源 git是个开源项目有很多年历史了它大部分内容都是用C来写 查看原图(大图) 你可以得到整个项目源代码加以分析和改进下载源地址:git-scm.com/downloadgit许可证:GNU通用公共许可证(GNU General Public License) 离线速度快 git是完全分布式处理这意味着它可以离线工作跟VCS工具例如Perforce或者SVN完全区别Git所有操作几乎不需要网络连接包括历史回顾差异显示和提交 这也意味着Git比其他VCS工具要快很多某些VCS工具对网络依赖会导致时间上延迟下面来看看'log'命令分别运行在git和SVN上结果: [master]$ time git log > /dev/null real 0m0.352s user 0m0.300s sys 0m0.034s $ time svn log > /dev/null real 0m3.709s user 0m0.482s sys 0m0.168s git仅用了0.3秒而SVN用了3.7秒你会发现几乎所有命令都有这样时间差异例如添加知名famfamfam出品图标集并提交使用git可以将【提交(commit)】和【上传('push')网络】这两个步骤分开其中【提交(commit)】git只用1/4秒而 SVN会用到45秒 time 'git add icons; git commit -m "added icons"' real 0m0.273s user 0m0.032s sys 0m0.008s time 'svn add icons; svn commit -m "added icons"' real 0m45.276s user 0m15.997s sys 0m5.503s 即使是再加上用git 提交(commit)的后再上传(push)到网络共享仓库中时间也比SVN耗时要少多多 time git push real 0m6.219s user 0m0.023s sys 0m0.011s 如果你仅仅是想提交然后继续工作你就会感觉到时间上巨大差异--git工作流程跟以前版本控制系统不大样git命令大部分都是即时不像以前执行'svn commit'命令的后可以喝杯咖啡再回来继续工作 比svn更小 git比较节省空间举例来说个Django项目如果使用现行源代码控制系统(source control systems)来实现版本控制话git克隆(clone)是最小 $ du -d 1 -h 108M ./django-bzr 44M ./django-git 53M ./django-hg 53M ./django-svn 更神奇是虽然git克隆比SVN要小很多但是git克隆包含整个项目历史版本---从第次提交的后每个文件每次提交版本都囊括了然而SVN只包含项目最后个版本 快照而不是变更集 跟其他VCS工具区别git是基于快照不再是考虑将提交点存储成补丁文件而是在你提交项目时候对项目做个简单快照 提交东西包含些元数据(提交信息(message)作者日期等等)个提交点指向这次提交时项目快照 查看原图(大图) 记住这个图对于给定情形下使用Git是非常有帮助 如果要了解更深层次Git存储数据只是可以访问Git for computer scientists 分支和合并 也许git最显著个特点就是它分枝模型了它改变了开发者工作基本模式以前VCS工具分枝思路方法是对每个分枝都放到个独立目录中而 git可以让你在同个工作目录中切换(switch)到区别分枝创建和切换分枝几乎是即时(instant)而且并不是所有分枝都需要上传到 git仓库中去共享对于某些你更愿意隐藏在本地工作来说git无疑提供了很大便利从这点上来说git确是有其独到的处 摒弃了CVS只对项目开发主线创建分枝做法git开发者可以随时创建合并删除多个分枝通常对于实现某个功能或者每个debug 阶段都可以创建它分枝当完成的后再将其进行合并这种模式可以让开发者体验更加快速简便安全方式来开发项目它鼓励种非线性开发周期它可以说是并行多线程模式而不是多个步骤串行模式 安装git 参见git community book中对于git安装在区别操作系统中介绍说明 资源 有关git更多信息可以参考git-scm.com 0
相关文章读者评论发表评论 |
|