Git的学习之路01 Git的简介、安装和配置

Git简介:

什么是Git?

Git是目前世界上最先进的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。最初由Linus Torvalds编写,用作Linux内核代码的管理。

SVN与Git的最主要的区别?

  • SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
  • Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。而且Git不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

1、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。
2、GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。
3、GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。
4、GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保> 代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

为什么学习Git?

除了你可以使用Git来管理自己的项目之外,还因为越来越多的人使用Github来托管自己的开源项目, 你可以找到适合你的开源项目进行学习,加入到一个团队来提高自己。同时GitHub也可以帮助你找到满意的工作!! 没错,可能有公司看到你托管到GitHub的项目而向你发出offer,在简历中 你的GitHub 可能成为加分项。

Git的安装:

最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑。不过,慢慢地有人把它移植到了Windows上。现在,Git可以在Linux、Unix、Mac和Windows这几大平台上正常运行了。


Git 各平台安装包下载地址为:http://git-scm.com/downloads

在Linux上安装Git:

首先,你可以试着输入git,看看系统有没有安装Git:

$ git
The program 'git' is currently not installed.
 You can install it by typin:sudo apt-get install git```
像上面的命令,有很多Linux会友好地告诉你Git没有安装,还会告诉你如何安装Git。
> Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。
在有 yum 的系统上(比如 Fedora)或者有 apt-get 的系统上(比如 Debian 体系),可以用下面的命令安装:
各 Linux 系统可以很简单多使用其安装包管理工具进行安装:
###### Debian/Ubuntu Git 安装命令为:
直接使用一条```sudo apt-get install git```就可以直接完成安装,非常简单。
如果版本过老,要把命令改为```sudo apt-get install git-core```,因为以前有个软件也叫GIT(GNU Interactive Tools),结果Git就只能叫```git-core```
了。由于Git名气实在太大,后来就把GNU Interactive Tools改成```gnuit```
,```git-core```正式改为```git```。

$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext
libz-dev libssl-dev
$ apt-get install git-core
$ git --version
git version 1.8.1.2```

Centos/RedHat 安装命令为:
$ yum install curl-devel expat-devel gettext-devel \ 
openssl-devel zlib-devel
$ yum -y install git-core
$ git --version
git version 1.7.1```
### 在Windows上安装Git:
- Windows是最烂的开发平台,如果不是开发Windows游戏或者在IE里调试页面,一般不推荐用Windows。不过微软也是有办法安装Git的,Windows下要使用很多Linux/Unix的工具时,需要***Cygwin***这样的模拟环境,Git也一样。***Cygwin***的安装和配置都比较复杂,最好不要折腾了。有大神已经把模拟环境和Git都打包好了,名叫**msysgit**,只需要下载一个单独的exe安装程序,其他什么也不用装,绝对好用。
- ***msysgit***其实就是Windows版的Git,从[https://git-for-windows.github.io](https://git-for-windows.github.io/)下载,然后按默认选项安装即可。安装完成后,就可以使用命令行的 git 工具(已经自带了 **ssh** 客户端)了,另外还有一个图形界面的 Git 项目管理工具。
- 在开始菜单里找到"Git"->"Git Bash",或桌面鼠标右键找到“Git Bash Here”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
### Mac 平台上安装:
在 Mac 平台上安装 Git 最容易的当属使用图形化的 Git 安装工具,下载地址为:
[http://sourceforge.net/projects/git-osx-installer/](http://sourceforge.net/projects/git-osx-installer/)
安装界面如下所示:
![](http://upload-images.jianshu.io/upload_images/2032666-d40326c7cfda03e9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

## Git的配置
Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。
这些环境变量,决定了 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 装在什么目录,就以此作为根目录来定位。
##### 用户信息
配置个人的用户名称和电子邮件地址:  因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识,你的名字与Email会出现在你的提交记录中。

$ git config --global user.name "你的github用户名"
$ git config --global user.email "你的github注册邮箱"```

注意:

  • git config使用--system参数时, Git 会读写/etc/gitconfig文件,该文件含有对系统上所有用户及他们所拥有的仓库都生效的配置值
    1. git config使用--global参数时,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置. 那么更改的配置文件就是位于该用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。Git 会读写~/.gitconfig文件,该文件含有只适用于该用户的配置值.
    2. 如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的.git/config 文件里。
  • git config使用--local参数时, Git 会读写由用户定义的各个库中Git 目录下的配置文件(.git/config),该文件含有只适用于该Git库的配置值。

以上阐述的三层配置从一般到特殊层层推进,如果定义的值有冲突,以后面层中定义的为准,例如:在.git/config和/etc/gitconfig有冲突会采用.git/config值

文本编辑器

设置Git默认使用的文本编辑器, 一般可能会是 Vi 或者 Vim。如果你喜欢使用Emacs 的话,可以重新设置:$ git config --global core.editor emacs

差异分析工具

还有一个比较常用的是,在解决合并冲突时使用哪种差异分析工具。比如要改用 vimdiff 的话:
$ git config --global merge.tool vimdiff
Git 可以理解 kdiff3,tkdiff,meld,xxdiff,emerge,vimdiff,gvimdiff,ecmerge,和 opendiff 等合并工具的输出信息。当然,自己也可以指定使用自己开发的工具。

查看配置信息

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

$ git config --list
http.postbuffer=2M
user.name=ScorpioZoes
user.email=ScorpioZoes@test.com```
有时候会看到重复的变量名,那就说明它们来自不同的配置文件(比如 /etc/gitconfig 和 ~/.gitconfig),不过最终 Git 实际采用的是最后一个。
这些配置我们也可以在 **~/.gitconfig** 或 **/etc/gitconfig** 看到,如下所示:
`vim ~/.gitconfig` 
显示内容如下所示:

[http]
postBuffer = 2M
[user]
user.name=WakingScorpio
user.email=WakingScorpio@test.com```
也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,像这样:

$ git config user.name
WakingScorpio```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容