没有合适的资源?快使用搜索试试~ 我知道了~
git使用简介
需积分: 0 2 下载量 66 浏览量
2012-11-26
08:47:45
上传
评论 1
收藏 471KB PDF 举报
温馨提示
试读
35页
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。git 在你创建提交的时候会记录你的名字
和 email 地址,所以你应该告诉 git 这些内容。可 以使用'git config'命令来
设置,如果传递参数'-global' ,它会将这些值记录在~/.gitconfig 文件里,
作为这些配置的默认值。
$ git config --global user.name "Scott Chacon"
$ git config --global user.email "schacon@gmail.com"
在使用 git 的过程中,经常会用到文本编辑器。默认情况下它使用的是 vim。如
果你喜欢用其他的编辑器,例如 emacs,你可以这样设置:
$ git config --global core.editor 'emacs'
查看设置值可以通过这样的命令:
$ git config user.name
你也可以自己编辑文件内容。git 首先会检查'/etc/gitconfig',然后是
'~/.gitconfig'最后是'.git/config',这些文件里的内容格式类似这样:
$ cat ~/.gitconfig
[user]
name = Scott Chacon
email = schacon@gmail.com
2.初始化一个新的 git 仓库
在一个已存在的目录中初始化 git 存储,只要在目录下输入'git init'命令即可。
这样会为这个目录生成一个基本的 git 存储框架。
$ rails myproject
$ cd myproject
$ git init
现在,就有了一个空的 git 存储(你可以查看目录下的'.git'目录)。现在就可
以 stage 和提交(commit)文件到这个目录了。分别使用'git add'和'git commit'
命令。下一节深入讲解这些命令。
$ git add .
$ git commit -m 'initial commit'
这样你就有了一个完整的提交之后的 git 存储了,可以运行'git log'(下一节
深入讲解)
$ git log
commit eac2f939e6a1cb3189fedd19919888d998ab0431
Author: Scott Chacon <schacon@gmail.com>
Date: Sun Feb 8 07:55:57 2009 -0800
initial commit
克隆一个 git 仓库
git 可以通过很多的协议进行网络通信,其中有三个最主要的协议,分别是 ssh,
http,git(专职为 git 服务的协议)
匿名访问方式:通过 git://或者 http.
不管使用何种协议克隆 git 存储,格式都是这样:'git clone uri', uri 的格
式:
"git://(hostname)/(path).git"
$ git clone git://github.com/schacon/munger.git
$ cd munger
$ git log
当然也可以使用 http 克隆,跟上面的类似,就是将 git 换成了 http。
$ git clone http://github.com/schacon/munger.git
这仅仅适用于服务器支持这两种协议的情况。如果服务器是 GitHub 的话,这两
种方式都是可以的。
记住这个图对于给定情形下使用 Git 是非常有帮助的。
如果要了解更深层次的Git存储数据的只是,可以访问
Git for computer scientists
分支和合并
也 许 git 最显著的一个特点就是它的分枝模型了,因为它改变了开发
者工作的基本模式。以前的 VCS 工具分枝的方法是对每一个分枝都放到
一个独立的目录中。而 git 可以让你在同一个工作目录中切换(switch)
到不同的分枝。创建和切换分枝几乎是即时的(instant),而且并不
是所有的分枝都需要上传到 git 仓库中去共享,对于某些你更愿意隐
剩余34页未读,继续阅读
资源评论
wangjinbao123456
- 粉丝: 2
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功