【Git】第二课:git安装和配置

🧑 作者简介 :阿里巴巴嵌入式技术专家,深耕嵌入式+人工智能领域,具备多年的嵌入式硬件产品研发管理经验。

📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导、简历面试辅导、技术架构设计优化、开发外包等服务,有需要可私信联系。
🗄️ 专栏介绍 :本文归属于专栏《Git/Repo》,专注git、repo的使用教程和操作技巧,持续更新中,欢迎大家订阅关注。

Git的安装和配置

  • [1. 安装](#1. 安装)
    • [1.1 Windows系统](#1.1 Windows系统)
      • [1.1.1 下载安装包](#1.1.1 下载安装包)
      • [1.1.2 安装过程指引](#1.1.2 安装过程指引)
    • [1.2 Linux系统](#1.2 Linux系统)
  • [2. 配置Git](#2. 配置Git)
    • [2.1 查看默认设置](#2.1 查看默认设置)
    • [2.2 配置用户名和邮箱](#2.2 配置用户名和邮箱)
    • [2.3 配置编辑器](#2.3 配置编辑器)
    • [2.4 配置SSH密钥](#2.4 配置SSH密钥)
    • [2.5 配置常用命令的别名](#2.5 配置常用命令的别名)
  • 课后习题
  • 附录

1. 安装

我们伟大祖国有句古话叫巧妇难为无米之炊,还有句话叫工欲善其事必先利其器。所以,在正式的学习之前,我们需要先把git这把利器安装好。

1.1 Windows系统

1.1.1 下载安装包

打开Git - Downloading Package页面,根据系统类型32位还是64位,自行下载对应的安装包。(请参考附录:查询系统类型是32位还是64位)。

Windows系统git下载页面

如果官网链接下载速度很慢,可以尝试切换到国内淘宝镜像站的git安装包维护页面,根据官网下载页面提示的最新发布版本号,找到对应版本目录,然后根据系统类型,下载对应版本的Git-X.X.X-32-bit.exe或者Git-X.X.X-64-bit.exe即可。

国内淘宝镜像站Git安装包维护页面


Git-2.43.0版本国内淘宝镜像站下载指引

1.1.2 安装过程指引

下载成功后运行git安装包,依次按如下步骤操作(如果安装其他版本时遇到本文没有提及且看不懂的步骤,就保持默认选项,然后Next即可)。

点击Next,开始安装


选择好安装路径(按需修改),点击Next


选择好git组件(默认即可,谨慎修改),点击Next


填写开始菜单文件夹名字(建议使用Git),点击Next


选择默认编辑器(选择默认的Vim即可,配置Git时会单独讲解配置编辑器更合适),点击Next


新仓库初始分支名设置(默认即可,后面课程会详细讲解分支知识),点击Next


设置git命令运行环境(默认即可,慎选第三个否则会覆盖部分系统自带命令),点击Next


选择ssh命令(默认即可,ssh用于生成公私密钥对,用于免密访问),点击Next


选择SSL/TLS库(默认即可,用于访问https加密型仓库),点击Next


配置换行符转换规则(默认即可,表示检出文件时转换为Windows系统的CRLF换行符,提交时转换为*nix系统的LF换行符),点击Next


配置git命令运行终端(务必选择默认的第一个,系统自带的不好用),点击Next


选择git pull命令的默认规则(保持默认即可,后面课程会详细讲解Fast-forward、Rebase相关知识),点击Next


配置git凭证(用的较少,保持默认即可),点击Next


配置扩展选项(保持默认即可),点击Next


配置实验室选项(用不到,都不选),点击Next


到此安装完成,选中Lunch Git Bash,去掉勾选View Release Notes,点击Finish


最后,在弹出的Git Bash中执行git --version命令查看版本号以确认是否安装成功

安装完成,最后弹出的Git Bash将是我们以后经常使用的一个终端,所有的git命令都会在这里完成。后续可以在开始菜单的Git文件夹或者任意文件夹下鼠标右键菜单中找到它。

开始菜单-Git


任意文件夹右键菜单-Open Git Bash here

1.2 Linux系统

参考Download for Linux and Unix页面指引,根据自己的Linux发行版(查询Linux发行版名称?)选择对应的安装命令安装即可。以开发者最常用的Ubuntu系统为例,使用如下命令即可一键安装最新版本的git:

bash 复制代码
sudo apt-get install git

2. 配置Git

2.1 查看默认设置

Windows平台安装git的过程中,我们做了大量的配置和选择。这些配置最终都会以git设置项的方式被保存到/etc/gitconfig文件(Windows系统中查看是位于git安装路径\etc\gitconfig)中,同时我们还可以使用git config --list命令来查看目前git的所有设置。

Windows系统git默认设置项

Linux系统只需要一条命令即可完成安装,没有过多的配置项需要我们选择,因此在Linux系统并没有像Windows系统一样的默认git设置项。

2.2 配置用户名和邮箱

在使用git之前,我们必须至少配置2个设置项:用户名和邮箱 。以便后续在提交代码时让git知道我们是谁,同时也能让git记录下我们每个人的劳动成果。配置git设置项使用的是git config命令

bash 复制代码
git config --global user.name "你的名字,为了兼容性考虑,建议使用英文或者拼音"
git config --global user.email "你的邮箱"

其中,

  • 携带--global参数,表示设置项全局可用
  • 不带--global参数,表示设置项仅限当前仓库可用
  • user.nameuser.email为git内置的2个设置项,分别用于保存用户名和邮箱。


示例:Git Bash配置用户名和邮箱

那么,我们的自定义设置项存在哪里了呢?查看/etc/gitconfig发现并没有变化,实际它是存放在了$HOME/.gitconfig(用户HOME目录下的.gitconfig)中,这个规则不管是Windows系统还是Linux系统都是一致的。

git命令实际执行过程中,会按/etc/gitconfig -> $HOME/.config/git/config -> $HOME/.gitconfig -> .git/config的顺序进行覆盖式加载,所以如果不同gitconfig文件中出现了同名设置项,那么会以最后被加载的为准。

示例:查看自定义git设置项存储文件的内容


示例:Linux系统使用strace跟踪git访问gitconfig文件的顺序


示例:Windows系统使用Process Monitor跟踪git访问gitconfig文件的顺序

2.3 配置编辑器

编辑器用于提交时填写提交信息,Windows系统安装过程中,已经让我们选择了其中的一个编辑器;Linux系统默认编辑器为nano。为了减少git使用过程中遇到的问题,强烈建议大家不管使用Windows系统还是Linux系统,都选择命令行版本编辑器:nano或者vim !!!相对来讲,vim对初学者确实不友好,学习难度较大,如果没有经验可以使用nano:一个简洁易学的命令行编辑器。

nano编辑器操作页面

配置为nano:

bash 复制代码
git config --global core.editor nano

配置为vim:

bash 复制代码
git config --global core.editor vim

第四课中讲解git commit命令时会详细介绍nano编辑器的使用方法。

2.4 配置SSH密钥

在前面Windows系统安装git的过程中,有一步是让我们选择ssh命令,当时提到过ssh的作用:用于生成公私密钥对,将公钥配置到git服务器之后,每次拉取和上传代码时就可以免除输入用户名密码,以免密方式来操作了。

稍安勿躁,具体操作方法会在第四课讲述Git基础时详细讲解。之所以单独列一小节来提它又不立即讲它,是因为这个配置本质上跟git是没有关系的,但是又跟git使用息息相关,甚至可以说是git借助了ssh免密登录的能力。

2.5 配置常用命令的别名

git config alias可以为Git命令设置一个自定义的别名(alias),从而简化命令的输入。这对于经常使用的命令特别有用,尤其是那些长而复杂的命令。以下是一些在 Git 社区中广泛使用的、大家约定俗成的别名:

  1. git co:这是git checkout的别名,用于切换分支或检出文件。
  2. git ci:这是git commit的别名,用于提交更改到暂存区。
  3. git st:这是git status的别名,用于查看工作目录和暂存区的状态。
  4. git br:这是git branch的别名,用于列出、创建或删除分支。
  5. git lg:这是log --graph --pretty=format:'%an %h %ad %s' --abbrev-commit --date=format:'%Y%m%d %H:%M:%S'的别名,以更易读的格式显示提交日志。
  6. git unstage:这是git reset HEAD的别名,用于将文件从暂存区移出。
  7. git last:这是git log -1的别名,用于显示最近的一次提交。

对应的设置命令如下所示:

bash 复制代码
git config --global alias.co checkout  
git config --global alias.ci commit  
git config --global alias.st status  
git config --global alias.br branch  
git config --global alias.lg "log --graph --pretty=format:'%C(bold yellow)<%h>%Creset %C(bold red)<%ad>%Creset %s %C(bold blue)<%an>%Creset' --date=format:'%Y-%m-%d %H:%M:%S' --abbrev-commit"  
git config --global alias.unstage 'reset HEAD'  
git config --global alias.last "log -1"

设置完成后,就可以使用缩短后的别名来代替真正的git命令了。

课后习题

  1. (单项选择题)git安装过程中为什么需要我们选择SSL/TLS库____?

A. 配置账号

B. 配置密码

C. 用于访问https加密型仓库

D. 多此一举

  1. (单项选择题)我想为当前仓库 设置一个专用用户名:Alex Guo,以下哪个命令是正确的_____?

A. git config --global user.name "Alex Guo"

B. git config user.name "Alex Guo"

C. git config --global user.name Alex Guo

D. git config user.name Alex Guo

  1. (不定项选择题)Git配置文件加载顺序_____?

A. /etc/gitconfig

B. .git/config

C. $HOME/.gitconfig

D. $HOME/.config/git/config

附录

查询Windows系统类型为32位还是64位

通过cmd命令:_systeminfo_可以查询系统类型

bash 复制代码
systeminfo

如果systeminfo执行结果中的系统类型显示的是"X86-based PC",那么就是32位的;如果显示的是"X64-based PC",那么就是64位的。如果不知道怎么执行_systeminfo _命令,那么就当做32位看待吧,因为即使是64位也可以兼容32位版本的。到这里,知道你的系统类型是哪个了吧,返回Window系统安装Git章节去下载对应系统安装包吧。

查看Windows系统类型

也可以下载检测系统类型的批处理脚本(另存为check_system_bitness.bat),双击执行即可直接看到结果了。

检测系统类型的批处理脚本执行结果

查看Linux发行版名称

通过cmd命令:_cat /etc/issue_可以查询Linux发行版。

bash 复制代码
cat /etc/issue

cat /etc/issue命令可以查看Linux发行版名称。

查询Linux发行版

相关推荐
zmd-zk3 分钟前
kafka+zookeeper的搭建
大数据·分布式·zookeeper·中间件·kafka
激流丶5 分钟前
【Kafka 实战】如何解决Kafka Topic数量过多带来的性能问题?
java·大数据·kafka·topic
EricWang135820 分钟前
[OS] 项目三-2-proc.c: exit(int status)
服务器·c语言·前端
测试界的酸菜鱼22 分钟前
Python 大数据展示屏实例
大数据·开发语言·python
我是谁??22 分钟前
C/C++使用AddressSanitizer检测内存错误
c语言·c++
时差95324 分钟前
【面试题】Hive 查询:如何查找用户连续三天登录的记录
大数据·数据库·hive·sql·面试·database
Mephisto.java26 分钟前
【大数据学习 | kafka高级部分】kafka中的选举机制
大数据·学习·kafka
Mephisto.java32 分钟前
【大数据学习 | kafka高级部分】kafka的优化参数整理
大数据·sql·oracle·kafka·json·database
道可云33 分钟前
道可云人工智能&元宇宙每日资讯|2024国际虚拟现实创新大会将在青岛举办
大数据·人工智能·3d·机器人·ar·vr
成都古河云44 分钟前
智慧场馆:安全、节能与智能化管理的未来
大数据·运维·人工智能·安全·智慧城市