Git概念

Git其实是一种分布式版本控制系统,与CVS,Subversion等集中化的版本控制系统相对。它主要有几个特点:

• 速度快

• 简单的设计

• 对非线性开发模式的强力支持(允许上千个并行开发的分支)

• 完全分布式

• 有能力高效管理类似Linux 内核一样的超大规模项目(速度和数据量)

安装Git

1.从源代码安装

若是条件允许,从源代码安装有很多好处,至少可以安装最新的版本。Git 的每个版本

都在不断尝试改进用户体验,所以能通过源代码自己编译安装最新版本就再好不过了。

有些Linux 版本自带的安装包更新起来并不及时,所以除非你在用最新的distro 或者

backports,那么从源代码安装其实该算是最佳选择。

Git 的工作需要调用curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。在有yum 的系统上(比如Fedora)或者有apt-get 的系统上(比如Debian 体系的),可以用下面的命令安装:

$ yum install curl-devel expat-devel gettext-devel \

openssl-devel zlib-devel

$ apt-get install curl-devel expat-devel gettext-devel \

openssl-devel zlib-devel

之后,从下面的Git 官方站点下载最新版本源代码:

http://git-scm.com/download

然后编译并安装:

$ tar -zxf git-1.6.0.5.tar.gz

$ cd git-1.6.0.5

$ make prefix=/usr/local all

$ sudo make prefix=/usr/local install

现在已经可以用git 命令了,用git 把Git 项目仓库克隆到本地,以便日后随时更新:

$ git clone git://git.kernel.org/pub/scm/git/git.git

2. 在Linux 上安装

如果要在Linux 上安装预编译好的Git 二进制安装包,可以直接用系统提供的包管理工具。在Fedora 上用yum 安装:

$ yum install git-core

在Ubuntu 这类Debian 体系的系统上,可以用apt-get 安装:

$ apt-get instal git-core

3. 在Mac 上安装

在Mac 上安装Git 有两种方式。最容易的当属使用图形化的Git 安装工具,界面如图

下载地址在:

http://code.google.com/p/git-osx-installer

另一种是通过MacPorts (http://www.macports.org) 安装。如果已经装好了MacPorts,

用下面的命令安装Git:

$ sudo port install git-core +svn +doc +bash_completion +gitweb

这种方式就不需要再自己安装依赖库了,Macports 会帮你搞定这些麻烦事

4. 在Windows 上安装

在Windows 上安装Git 同样轻松,有个叫做msysGit 的项目提供了安装包,可以从

Google Code 的页面上下载安装文件(.exe):

http://code.google.com/p/msysgit

完成安装之后,就可以使用命令行的git 工具(已经自带了ssh 客户端)了,另外还有

一个图形界面的Git 项目管理工具。

 初次运行Git 前的配置

一般在新的系统上,我们都需要先配置下自己的Git 工作环境。配置工作只需一次,以后升级时还会沿用现在的配置。当然,如果需要,你随时可以用相同的命令修改已有的配

置。

Git 提供了一个叫做git config 的工具(译注:实际是git-config 命令,只不过可以

通过git 加一个名字来呼叫此命令。),专门用来配置或读取相应的工作环境变量。而正

是由这些环境变量,决定了Git 在各个环节的具体工作方式和行为。这些变量可以存放在

以下三个不同的地方:

• /etc/gitconfig文件:系统中对所有用户都普遍适用的配置。若使用git config 时

用--system 选项,读写的就是这个文件。

• ~/.gitconfig文件:用户目录下的配置文件只适用于该用户。若使用git config 时

用--global 选项,读写的就是这个文件。

• 当前项目的git 目录中的配置文件(也就是工作目录中的.git/config 文件):这

里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以

.git/config 里的配置会覆盖/etc/gitconfig 中的同名变量。

在Windows 系统上,Git 会找寻用户主目录下的.gitconfig 文件。主目录即$HOME 变量指定的目录,一般都是C:\Documents and Settings\$USER。此外,Git 还会尝试找寻/etc/gitconfig 文件,只不过看当初Git 装在什么目录,就以此作为根目录来定位。

1.用户信息

第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次Git 提

交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记

录:

$ git config --global user.name "John Doe"

$ git config --global user.email johndoe@example.com

如果用了--global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你

所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或

者电邮,只要去掉--global 选项重新配置即可,新的设定保存在当前项目的.git/config

文件里。

2. 文本编辑器

接下来要设置的是默认使用的文本编辑器。Git 需要你输入一些额外消息的时候,会自动调用一个外部文本编辑器给你用。默认会使用操作系统指定的默认编辑器,一般可能会是

Vi 或者Vim。如果你有其他偏好,比如Emacs 的话,可以重新设置:

$ git config --global core.editor emacs

3. 差异分析工具

还有一个比较常用的是,在解决合并冲突时使用哪种差异分析工具。比如要改用vimdiff

的话:

$ git config --global merge.tool vimdiff

Git 可以理解kdiff3,tkdiff,meld,xxdiff,emerge,vimdiff,gvimdiff,ecmerge,

和opendiff 等合并工具的输出信息。

4.查看配置信息

要检查已有的配置信息,可以使用git config --list 命令:

$ git config --list

user.name=Scott Chacon

user.email=schacon@gmail.com

color.status=auto

color.branch=auto

color.interactive=auto

color.diff=auto

...

有时候会看到重复的变量名,那就说明它们来自不同的配置文件(比如/etc/gitconfig

和~/.gitconfig),不过最终Git 实际采用的是最后一个。

也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,像这样:

$ git config user.name

Scott Chacon

6. 获取帮助

想了解Git 的各式工具该怎么用,可以阅读它们的使用帮助,方法有三:

$ git help <verb>

$ git <verb> --help

$ man git-<verb>

比如,要学习config 命令可以怎么用,运行:

$ git help config

我们随时都可以浏览这些帮助信息而无需连网。不过,要是你觉得还不够,可以到

Frenode IRC 服务器(irc.freenode.net)上的#git 或#github 频道寻求他人帮助。这

两个频道上总有着上百号人,大多都有着丰富的git 知识,并且乐于助人。

最新文章

  1. 翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 5 - 数据库设计
  2. 【一】Ubuntu14.04+Jekyll+Github Pages搭建静态博客
  3. [转] Eclipse 编辑相关快捷键
  4. maven pom.xml报错
  5. BW对应后台表[转]
  6. 剑指Offer36 数字在排序数组中出现的次数
  7. MyBatis学习笔记之resultMap
  8. .bat批处理脚本让cmd命令行提示符cd到工作目录 (转)
  9. BZOJ2741: 【FOTILE模拟赛】L
  10. 19个非常有用的Javascript类库
  11. JS之路——数组对象
  12. MyBatis:打印SQL 日志
  13. python入门第二天
  14. POJ.1830.开关问题(高斯消元 异或方程组)
  15. SPSS简单使用
  16. 十大最佳Leap Motion体感控制器应用
  17. 解题:SCOI 2014 方伯伯运椰子
  18. PHP 执行系统外部命令的方法 system() exec()
  19. 小K的农场(差分约束,spfa)
  20. ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry ’1′ for key

热门文章

  1. 如何学习Java?
  2. 高性能MySQL(四)
  3. centos编译 Compiling FFmpeg on CentOS RHEL Fedora
  4. 02 svn 文件提交与目录结构
  5. EasyPusher安卓Android手机直播推送之RTSP流媒体协议流程
  6. JQery 动态填充数据到table 中
  7. 九度OJ 1094:String Matching(字符串匹配) (计数)
  8. 前后端通吃的单元测试---mocha
  9. MySQL 的“root”用户修改密码
  10. Post Man 调用CRMAPI