`

(转)Git学习教程(一):git简介

    博客分类:
  • git
阅读更多

原文地址:http://fsjoy.blog.51cto.com/318484/244397

 Git学习教程(一):git简介


2009-12-16 13:24:52
 标签:git 学习 教程   [推送到技术圈

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://fsjoy.blog.51cto.com/318484/244397
原文地址

第一课. git简介
内容:什么是git,为什么要使用git以及获取和学习git的途径。
 
 
欢迎来到github学习教程的第一课。本教程将通过一系列的实例来介绍如快速,轻松地使用Git。教程中会有很多屏幕截图,希望这样可以让你更好的学习和理解。
本节简要介绍git的概念和为什么应该使用它

 
git是一个快速,开源,分布式的版本控制系统。因此,它在(开源)和(协作编程社区)很快取代了svn。

版本控制系统 
首先,git是一个版本控制系统,用来保留工程源代码历史状态的命令行工具。类似于SVN,CVS或者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 install

6.$ git --version

如果需要命令帮助的话,可以键入'-help'就会显示出
操作手册。你也可以键入'git help command'实现同样的目的。

$ git log --help
$ git help log

开源 
git是一个开源项目,有很多年的历史了,它的大部分内容都是用C来写的。
你可以得到整个项目的源代码,加以分析和改进。下载源程序的地址:git-scm.com/download。git许可证: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

分享到:
评论

相关推荐

    git-gateway:Git API的网关

    使用JAMstack方法构建站点时,一种常见的模式是将所有内容作为结构化数据存储在Git存储库中,而不是依赖于外部数据库。 Netlify CMS是一个开放源代码的内容管理UI,它允许内容编辑器通过熟悉的内容编辑界面在Git中...

    git 视频教程

    git视频教程.1.Git 命令 - git help、git config.mp4 git视频教程.2.Git 命令 - git init、git clone.mp4 git视频教程.3.1.Git 命令 - git add、git status.mp4 git视频教程.3.2.Git 命令 - git diff、git difftool....

    Git教程by廖雪峰.pdf

    因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助...

    微信小程序学习用demo:git-book(源代码+截图)

    微信小程序学习用demo:git-book(源代码+截图)微信小程序学习用demo:git-book(源代码+截图)微信小程序学习用demo:git-book(源代码+截图)微信小程序学习用demo:git-book(源代码+截图)微信小程序学习用demo:git-...

    git官方教程(中文版和英文版)

    1. 类型: 文字版pdf,代码和内容可直接复制,非图片扫描版。 2. 简介: 这是官方git教程,资源压缩包里自带中文版和...3. 内容: 这是初学者学习git的最好教程,主要讲解了git的原理,以及git命令的使用。非常地amazing!

    progit.pdf--git学习教程

    git学习官方教程

    Git超级教程菜鸟教程

    Git超级教程菜鸟教程Git超级教程菜鸟教程Git超级教程菜鸟教程Git超级教程菜鸟教程Git超级教程菜鸟教程Git超级教程菜鸟教程Git超级教程菜鸟教程Git超级教程菜鸟教程

    解决git:fatal:Unable to create”…/.git/index.lock” 的错误

    问题描述: 在使用git 进行提交时, 出现上面这个报错, 导致无法提交. 报错大致意思就是创建index.lock文件失败,因为已经存在index.lock文件了. index.lock文件是在.git下面, 而.git是一般是隐藏的, 那么可以通过以下...

    Git中文教程.pdf

    Git中文教程:主要网上GIT的中文教程非常难找。

    git和svn学习入门教程

    现在使用git的比svn多了,但是git操作比svn复杂,上传git和svn的简单教程

    git通俗易懂教程

    因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助文档的,...

    git学习基础教程

    git学习基础教程两本,书名分别为《Pro Git》、《Git教程》,其中《Git教程》的作者是廖雪峰

    GIT相关书籍下载 Git+使用教程 Git权威指南 01链接

    压缩包包含以下几个pdf文件 由于大小有限制,需下载02链接,搜索方式 GIT相关书籍下载 Git+使用教程 Git权威指南 ...git简介.pdf pro_git_中文版本.pdf TortoiseGit日常使用指南.pdf 分布式版本控制系统-Git详解.pdf

    最简单的git学习教程

    轻松学习git

    Git详细使用教程文档

    Git详细使用教程Git详细使用教程Git详细使用教程Git详细使用教程Git详细使用教程Git详细使用教程Git详细使用教程Git详细使用教程Git详细使用教程Git详细使用教程Git详细使用教程Git详细使用教程Git详细使用教程Git...

    windows 安装git教程

    Windows系统安装git 全教程 安装步骤 与使用说明 谢谢参考

    解决fatal:remote error:You can’t push to git://github.com/username/*.git问题的办法

    解决fatal:remote error:You can’t push to git://github.com/username/*.git问题的办法 今天Git push的时候 fatal:remote error: You can't push to git://github.com/username/*.git Use git@github....

    git-ray::laptop::water_pistol:-一个nodejs库来调用用RxJS编写的git命令

    :laptop: :water_pistol: -一个nodejs库来调用用RxJS编写的git命令 安装 yarn add git-ray 或者 npm install git-ray 用法 可以观察到 当前支持的命令: git-clone git-pull git-checkout git-remote git-...

    idea配置git教程.docx

    下面是一个关于如何在IntelliJ IDEA中配置Git的简要教程: 步骤1:安装Git 首先,确保您已经在计算机上安装了Git。您可以从Git官方网站(https://git-scm.com/downloads)下载并安装Git。 步骤2:打开IntelliJ ...

    最完整的git教程.zip

    git最全的教程、最官方的教程、最完整的教程,你可以学习到最完整的git教程,你可以系统地学习git教程。

Global site tag (gtag.js) - Google Analytics