写点什么

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:0843254

评论

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

去中心化云算力的3个发展阶段,走向自治和高效

PowerVerse

发展 去中心化 算力 web3

AI背单词APP的线上运营

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI背单词

不愧是高级Java开发岗,确实有点难~

王中阳Go

Java 面试 Java高级开发工程师

分布式数据一致性场景与方案处理分析|得物技术

得物技术

分布式 事务消息 分布式一致性 业务场景分析

HarmonyOS NEXT 中级开发笔记:基于ArkTS的简易文件浏览器实现

huafushutong

HarmonyOS NEXT

嘉为蓝鲸IT服务管理中心V4.0:灵活扩展+敏捷交付,IT服务管理全链路高效协同

嘉为蓝鲸

AIOPS ITSM 智能运维 IT服务管理中心

「通义灵码+X」公开课开讲啦!和赛博同桌一起完成开发任务 有奖励

阿里巴巴云原生

Web3项目的上线流程

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

运维人员如何抓住 AI 机遇?DeepSeek 给出的转型路线图

嘉为蓝鲸

AIOPS 智能运维 DeepSeek

可观测性+AI双轮驱动!嘉为蓝鲸应用发布中心V6.0打造下一代智能发布操作系统

嘉为蓝鲸

AIOPS 智能运维 应用发布中心

智慧园区管理系统(源码+文档+讲解+演示)

深圳亥时科技

HarmonyOS NEXT 中级开发笔记:健康管理类应用的ArkTS实践

huafushutong

HarmonyOS NEXT

使用 Ollama 本地模型与 Spring AI Alibaba 的强强结合,打造下一代 RAG 应用

阿里巴巴云原生

阿里云 云原生

云原生 Kafka 问卷调研启动,你的声音很重要!参与赢精美礼品!

阿里巴巴云原生

kafka 阿里云 云原生

「通义灵码+X」公开课开讲啦!和赛博同桌一起完成开发任务 有奖励

阿里云云效

阿里云 通义灵码

WebGL软件系统的性能优化方法

北京木奇移动技术有限公司

软件外包公司 webgl开发 three.js开发

智能运维,由你定义:SAE自定义日志与监控解决方案

阿里巴巴云原生

阿里云 Serverless 云原生

【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(12)

HarmonyOS SDK

harmoyos

HarmonyOS NEXT 中级开发笔记:基于ArkTS的消费记账应用实践

huafushutong

HarmonyOS NEXT

钉钉 + AI 网关给 DeepSeek 办入职

阿里巴巴云原生

阿里云 AI 网关

秒哒首发即爆发!上线首日吸引2万用户,打造3万应用!

百度Geek说

百度

HarmonyOS NEXT 中级开发笔记:基于ArkTS的拼团电商应用实践

huafushutong

HarmonyOS NEXT

怎么用最小的投入通过等保测评?一站式服务

黑龙江陆陆信息测评部

DataWorks数据集成同步至Hologres能力介绍

阿里云大数据AI技术

大数据 Serverless 数据集成 hologres Dataworks

AI加剧GPU短缺,解决之道在哪里?

PowerVerse

趋势 AI‘’ gpu 算力

内核探究|Apache Cloudberry 并行查询技术解析

酷克数据HashData

4月用友BIP行动地图发布!

用友智能财务

AI 财务 会计

京东API接口最新指南:店铺所有商品接口的接入与使用

tbapi

京东API 京东店铺所有商品接口 京东店铺所有商品采集

以智能运维一体化平台破局数字化转型深层挑战,湖北数产集团X嘉为蓝鲸

嘉为蓝鲸

数字化转型 AIOPS 一体化运维

智能运维新标杆:OpsPilot V3.3通过MCP实现多源运维知识融合

嘉为蓝鲸

智能运维 #WeOps MCP协议

双引擎驱动!WeOps存储监控的全插件支持与自定义开发指南

嘉为蓝鲸

智能运维 #WeOps 监控管理

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