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 知识,并且乐于助人。

Git(一)的更多相关文章

  1. Git 子模块 - submodule

    有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你 独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在 一个项目中使用另 ...

  2. Git 在团队中的最佳实践--如何正确使用Git Flow

    我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...

  3. Git与Repo入门

    版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...

  4. Git Bash的一些命令和配置

    查看git版本号: git --version 如果是第一次使用Git,你需要设置署名和邮箱: $ git config --global user.name "用户名" $ gi ...

  5. 在Ubuntu 16.10 安装 git 并上传代码至 git.oschina.net

    1. 注册一个账号和创建项目 先在git.oschina.net上注册一个账号和新建一个project ,如project name 是"myTest". 2.安装git sudo ...

  6. 史上最详细git教程

    题外话 虽然这个标题很惊悚,不过还是把你骗进来了,哈哈-各位看官不要着急,耐心往下看 Git是什么 Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别 SVN是集中式版本控制 ...

  7. [版本控制之道] Git 常用的命令总结(欢迎收藏备用)

    坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...

  8. 【解决方案】Myeclipse 10 安装 GIT 插件 集成 步骤 图解

    工程开发中,往往要使用到集成GIT ,那么下面说说插件安装步骤 PS:以Myeclipse 10 为例,讲解集成安装步骤. ----------------------main------------ ...

  9. git 命令

    切换仓库地址: git remote set-url origin xxx.git切换分支:git checkout name撤销修改:git checkout -- file删除文件:git rm  ...

  10. git亲测命令

    一.Git新建本地分支与远程分支关联问题 git checkout -b branch_name origin/branch_name 或者 git branch --set-upstream bra ...

随机推荐

  1. do export method of oracle all database tables with dmp files.

    usually we need to export the database tables to backup and others use. So we must know what to do e ...

  2. MapReduce框架在Yarn上的具体解释

    MapReduce任务解析 在YARN上一个MapReduce任务叫做一个Job. 一个Job的主程序在MapReduce框架上实现的应用名称叫MRAppMaster. MapReduce任务的Tim ...

  3. Windows App开发之集合控件与数据绑定

    为ListView和GridView加入数据 ListView採用垂直堆叠得方式显示数据.而GridView则採用水平堆叠得方式. 长相的话嘛,它们都几乎相同. <Grid Name=" ...

  4. spring核心包功能解析

  5. 针对基于Phison(群联)U盘的BadUSB攻击

    修改U盘固件使之在插入电脑时能执行键盘指令.原文和源码在此,粗略翻译了一下.https://github.com/adamcaudill/Psychson 其实还有类似的成品卖,叫做USB Rubbe ...

  6. Rest Api(转载)

    来源:http://www.cnblogs.com/springyangwc/archive/2012/01/18/2325784.html 概述 REST 从资源的角度来观察整个网络,分布在各处的资 ...

  7. MVC5中使用jQuery Post 二维数组和一维数组到Action

    很久没有写了,最近在做一个MVC项目,这是我做的第一个MVC项目.之前可以说多MVC一点都不了解,今天把昨天遇到的一个问题记录下来.MVC大神就请飘过吧,跟我遇到同样问题的可以进来看看.遇到的第一个问 ...

  8. n&(n-1)的妙用

    今天无聊拿起<编程之美>看了下,发现原来n&(n-1)还有很多妙用.n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,先看一个简单的例子:n = 10100(二进 ...

  9. EasyDarwin开源流媒体服务器低延时直播之转发缓存跟进算法

    前言 前一段时间,我们为EasyDarwin实现了客户端快速显示画面/听到同步声音的缓存关键帧检索方案,具体的实现方法分别在<EasyDarwin手机直播是如何实现的快速显示视频的方法>和 ...

  10. Liquibase

    http://www.liquibase.org/documentation/index.html https://github.com/studygolang/studygolang/tree/ma ...