写点什么

Git 历险记(二)——Git 的安装和配置

  • 2011-01-23
  • 本文字数:2679 字

    阅读完需:约 9 分钟

各位同学,上回 Git 历险记(一)讲了一个 “hello Git” 的小故事。有的同学可能是玩过了其它分布式版本控制系统(DVCS),看完之后就触类旁通对 Git 就了然于胸了;也有的同学可能还如我当初入手 Git 一样,对它还是摸不着头脑。

从这一篇开始,我就将比较“啰嗦”的和大家一起从零开始经历 Git 使用的每一步,当然对我而言这也是一个重新认识 Git 的过程。

使用 Git 的第一步肯定是安装 Git,因为在多数平台上 Git 是没有预装的。我平时主要的工作环境是 windows 和 Linux(ubuntu),我想看这篇文章的同学多半也是在这两个平台下工作;下面我讲一下如何在这两个平台下安装和配置 Git。

BTW:如果是苹果平台的用户的安装可以参看一下这里 ( 1 2 ),配置和命令行的使用与 windows、Linux(*nix)平台差别不大。

Linux (*nix) 平台

Linus 开发 Git 的最初目的就是为了开发 Linux 内核服务的,自然它对 Linux 的平台支持也是最棒的。在 Linux 下安装 Git 大约有几种方法:

从源代码开始 (这种方法也适合于多数 *nix 平台)

Git 官网下载页面下载它最新稳定版的源代码,就可以从源代码开始编译、安装:

复制代码
$ wget http://kernel.org/pub/software/scm/git/git-1.7.3.5.tar.bz2
$ tar -xjvf git-1.7.3.5.tar.bz2
$ cd git-1.7.3.5
$ make prefix=/usr all ;# prefix 设置你的 Git 安装目录
$ sudo make prefix=/usr install ;# 以 root 权限运行

为了编译 Git 的源代码,我们还需要一些库: expat curl zlib openssl ; 除了 expat 外,其它的库可能在你的机器上都安装了。

使用安装包管理器(apt 或 yum)

在 fedora 等系统下用 yum

复制代码
$ yum install git-core

在 debian, ubuntu 等系统下用 apt

复制代码
$ apt-get install git-core

有时候,你系统里的安装包管理器出现了问题,或是要安装 Git 的机器不能上网、没有编译器的话,你可以从下面的站点去下载 “.deb” 或 “.rpm”的安装包:

Windows 平台

windows 平台有两个模拟 *nix like 运行环境的工具: cygwin msys ;Git 在 cygwin msys 下都有相应的移植版本。我个人觉得 msys 平台下的 msysGit 最好用,现在我在 windows 下也是用的这个版本。

很多同学可能要问,现在 windows 下有那多 Git 用户,为什么 Git 不直接出一个 windows native 版。俺当年翻看了一下 Git 的源代码,它里面使用了大量的 *nix 平台的 native api,而这些 api 在 windows 下是没有的,所以必须要用 cygwin、msys 这样的一个中间层来满足软件移植的要求。

下面我“啰嗦”一下如何在 windows 下安装 msysGit。

下载

到它的下载页面去下载一个最新的完整安装包,笔者在撰写本文时下载的是这个

安装

安装的过程没有什么好说的,一般是开始安装后,一路的点击“下一步”。由于windows 平台的换行符(CRLF)和Linux(*nix) 平台的换行符(LF)不同,那么在windows 下开发其它平台软件的朋友有一个地方要注意(见下图):

在这里一最好选“Checkout as-is, commit as-is”这个选项,这样,Git 就不会修改你代码的换行符风格。

以前有个朋友因为选错了这个选项,以致他在windows 平台下的一签出(checkout)其它平台的代码,就会显示”已修改“(modified),不过后来可能msysGit 也认识到这个问题了,就把默认选项改成了这个选项。

BTW: 其实前面两项也是有用的,如果对 windows 和 Linux(*nix) 平台如何处理换行符很熟悉的话,也可以尝试一下前面两个选项:)

配置Git

在Linux 下和windows 下配置Git 的方法差不多,只是在Linux 下,可以在命令行里直接使用 git config 进行配置, 而在 windows 下则要先打开“Git Bash”,进入 msysGit 命令行界面,再用 git config 命令进行相应的配置操作。

好了,前面安装好了 Git,现在我们开始配置:

第一个需要配置的就是用户的用户名和 email,因为这些内容会出现在你的每一个提交(commit)里面的,像下面这样:

复制代码
$ git log #我们用 git log 查看当前仓库的提交(commit)日志
commit 71948005382ff8e02dd8d5e8d2b4834428eece24
Author: author <author@corpmail.com>
Date: Thu Jan 20 12:58:05 2011 +0800
Project init

下面的这两行命令就是设置用户名和 email:

复制代码
$ git config <b>--global </b>user.name author #将用户名设为 author
$ git config <b>--global </b>user.email author@corpmail.com #将用户邮箱设为 author@corpmail.com

Git 的配置信息分为全局和项目两种,上面命令中带了“–global"参数,这就意味是在进行全局配置,它会影响本机上的每个一个 Git 项目。

大家看到,上面我们用的是 @corpmail(公司邮箱);但是有时候我们可能也参与了一些开源项目,那么就需要新的用户名和自己的私人邮箱,Git 可以为每个项目设定不同的配置信息。

在命令行环境,进入 Git 项目所在目录,执行下面的命令:

复制代码
$ git config user.name nickname#将用户名设为 nickname
$ git config user.email nickname@gmail.com #将用户邮箱设为 nickname@gmail.com

Git 的设计哲学和 Linux(*nix)一样,尽量的使用“文本化”(Textuality);它里面尽量用文本化的形式存储信息,对于配置信息也更是如此,用户的这些配置信息全部是存储在文本文件中。Git 的全局配置文件是存放在"~/.gitconfig"(用户目录下的.gitconfig)文件中:

我们用 cat、head 命令查看全局配置信息文件,并假设相关配置信息存储在文件的前 3 行(当然也有可能不在前 3 行,这里只是为了方便表示)

复制代码
$ cat ~/.gitconfig | head -3
[user]
name = author
email = author@corpmail.com

而项目配置文件是存放在 Git 项目所在目录的".git/config"文件中,这里也像上面一样用 cat、head 命令查看一下:

复制代码
$ cat .git/config | head -3
[user]
name = nickname
email = nickname@gmail.com

如果大家对于 Git 熟悉后,可以直修改”~/.gitconfig”,”.git/config”这两个文件进行配置。

Git 里还有很多可以配置的地方,大家可以参考一下 git config 定制git


这一篇写起来有点平淡无奇,但这是一个Git 用户迈出的第一步。后面我还会有一系列的文章出来,都是我个人使用过程中的感悟。

有朋友问我:“为什么把文章叫作:‘Git 历险记’”。这是因为在使用Git 的历程中,我碰到过N 多的问题;同时也觉得它有点小复杂。但是当这些问题解开后,就有时不得不赞叹它设计的巧妙之处。

如果大家对于我的文章有什么问题和建议,欢迎给我写邮件:

之前我建立了一个 git 中文用户组 ,如果大家在使用 Git 的过程中碰到什么麻烦事,欢迎你在这个用户组里提问。

参考资料:

感谢张凯峰对本文的策划及无比耐心的审校。

感谢家人在我的写作过程中的默默支持。

2011-01-23 19:0843187

评论

发布
暂无评论
发现更多内容

文盘Rust -- r2d2 实现redis 连接池

TiDB 社区干货传送门

开发语言

Zebec获BNB Chain生态大力支持,ZBC通证将陆续登录一线平台

西柚子

什么是CodeArts?

科技怪授

华为云

你需要知道的 14 个常用的 JavaScript 函数

千锋IT教育

《程序员修炼手册》,这521道阿里Java面试真题!真的不来看看?

钟奕礼

Java 程序员 java面试 java编程

美团四面Java岗,终获offer,我是这么回答面试官的

钟奕礼

Java 程序员 java面试 java编程

政企数智办公潮水里的融云「答卷」

融云 RongCloud

办公 数智化

Redis的数据被删除,占用内存咋还那么大?

码哥字节

redis 数据 内存

大厂10年经验,我对Java高并发问题方案的总结,堪称教科书级

钟奕礼

Java 程序员 java面试 java编程

2022鸿蒙开发者大赛应用创新赛道收官,中国赛区21个优秀作品获奖

极客天地

用javascript分类刷leetcode3.动态规划(图文视频讲解)

js2030code

JavaScript LeetCode

携手荣耀,出海正当时

荣耀开发者服务平台

开发者 App 出海 荣耀 honor

我凭借这1000道java真题,顺利拿下京东、饿了么、阿里大厂offer

钟奕礼

Java 程序员 java面试 java编程

一块RTX 3090加速训练YOLOv5s,时间减少11个小时,速度提升20%

OneFlow

人工智能 深度学习 模型训练

阿里P8裸辞真实心路历程,他底气来源于Java高阶面试合集

收到请回复

Java 程序员 面试 编程语言

黄金三月,跳槽旺季稳拿40k月薪,java资料免费送

钟奕礼

Java 程序员 java面试 java编程

鸿蒙开发实例|对象关系映射数据库

TiAmo

华为 华为云 12月月更

前端工程师leetcode算法面试必备-二分搜索算法(中)

js2030code

JavaScript LeetCode

【12.02-12.09】写作社区优秀技术博文回顾

InfoQ写作社区官方

热门活动

Redis 为什么这么快,你知道 I/O 多路复用吗?

C++后台开发

redis 多线程 后端开发 C++开发 I/O 多路复用

成果版本支持追溯,代码来源有迹可循|ModelWhale 版本更新

ModelWhale

人工智能 机器学习 数据分析 团队协同 编程建模

这400道面试题,决定了你去BAT还是TMD

钟奕礼

Java 程序员 java面试 java编程

CodeArts如何保证客户代码和应用安全?

科技怪授

华为云

TiDB集群安装TiDB Dashboard

TiDB 社区干货传送门

集群管理 管理与运维 故障排查/诊断

手把手搭建视频查重系统

Zilliz

Milvus Towhee

开发任务都完不成,哪有空搞稳定性?先看看这13条建议|TakinTalks论道

TakinTalks稳定性社区

技术管理

远程CG动画制作的神器:RayLink远程控制软件

RayLink远程工具

远程控制软件 远程办公软件 远控软件 远程桌面连接 RayLink

如何使用记事本编写 java 程序(从零开始学 Java 系列课程)

千锋IT教育

【分布式技术专题】「架构设计方案」盘点和总结秒杀服务的功能设计及注意事项技术体系

码界西柚

分布式架构 秒杀架构 12月日更

BI智慧仓储,带你体验数字化仓储物流管理

葡萄城技术团队

阿里三面,这200道面试题免费发放,赶紧拿去收藏

钟奕礼

Java 程序员 java面试 java编程

Git历险记(二)——Git的安装和配置_Java_刘辉_InfoQ精选文章