02. Git 安装和基本配置

Git 安装

Linux 上安装 Git

首先,你可以试着输入 Git,看看系统有没有安装 Git。有很多 Linux 系统会友好地告诉你 Git 没有安装,还会告诉你如何安装 Git。如果你碰巧用 Debian 或 Ubuntu,通过一条 sudo apt install git可以直接完成 Git 的安装。

以新版 Fedora 为例,如果你在使用它(或与之紧密相关的基于 RPM 的发行版,如 RHEL 或 CentOS),你可以使用 dnf。否则通过这条命令 sudo yum install git 可以完成安装。

如果是其他 Linux 版本,可以直接通过源码安装。先从 Git 官网下载源码。

git 源码官网
https://mirrors.edge.kernel.org/pub/software/scm/git/

git-2.40.0.tar.gz
https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.40.0.tar.gz

然后进行 tar 解压,再依次输入:

1
2
3
./config
make
sudo make install

mac 上安装 Git

推荐使用 homebrew 进行安装

Windows 上安装 Git

msysgit 是 Windows 版的 Git,

安装完成后,在开始菜单里找到 Git -> Git Bash,蹦出一个类似命令行窗口的东西,就说明 Git 安装成功!

windows 环境下可以进一步配置环境变量为 C:\Program Files\Git\bin

Git 最小化配置和基本配置

首先得了解三个级别(作用域由低到高,优先级则是由高到低):

  • –local 默认级别: 只影响本仓库。每个仓库的 Git 配置文件都放在 .git/config 文件中,也可以单独配置它。.git/config
  • –global 当前用户的 Git 配置文件放在用户主目录下的一个隐藏文件 .gitconfig 中。git 配置 ~/gitconfig%USERPROFILE%\.gitconfig
  • –system 最高级别 影响系统的 git 配置 /etc/gitconfig

查阅某个环境变量的设定,只要把特定的名字跟在后面即可,例如

1
2
3
git config user.name
git config --global user.name
git config --system user.name

打开配置文件

1
2
3
git config -e
git config -e --global
git config -e --system

配置用户名和邮箱
因为 Git 是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和 Email。

最小化配置

1
2
3
# 一般配置到用户级别即可
git config --global user.name "Mona Lisa"
git config --global user.email "YourEmail@example.com"

推荐的增强配置

配置 Git 处理行结束符

windows 、mac 和 linux 统一使用 git config --global core.autocrlf input

1
2
#提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn

其中 true 表示拒绝提交包含混合换行符的文件,false 表示允许提交包含混合换行符的文件

按仓库设置行结束符

你可以选择配置 “.gitattribute” 文件来管理 Git 读取特定存储库中的行结束符的方式。 将此文件提交到存储库时,它将覆盖所有存储库贡献者的 core.autocrlf 设置。 这可确保所有用户的行为一致,而不管其 Git 设置和环境如何。

“.gitattributes” 文件必须在存储库的根目录下创建,且像任何其他文件一样提交。

下面是一个 “.gitattributes” 示例文件。 您可以将其用作仓库的模板:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto

# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.h text

# Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf

# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary

为确保存储库中的所有行结束符与新配置匹配,请使用 Git 备份文件,删除存储库中的所有文件(.git 目录除外),然后使用命令 $ git add --renormalize . 一次性恢复所有文件。

设置快捷命令

设置 alias, 命令为 git config alias.[别名] [原命令],使用别名简化常用命令。如果原命令有空格, 需要加引号引起来。

1
2
3
4
git config --global alias.ci commit
git config --global alias.co checkout
git config --global alias.st status
git config --global alias.br branch

美化 UI

1
git config --global color.ui true

log 美化日志输出

让 Git 显示颜色,使命令输出看起来更醒目

1
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

git 分支 master 改为 main

1
git config --global init.defaultBranch main

如果 master 分支已经在使用中,您的成员必须手动更新他们的本地环境。当他们访问存储库时,我们将通知他们,或者您可以共享以下命令。

1
2
3
4
git branch -m master main
git fetch origin
git branch -u origin/main main
git remote set-head origin -a

创建 SSH 密钥

Git 使用的传输协议中最常见的可能就是 SSH 了。这是因为大多数环境已经支持通过 SSH 对服务器的访问。使用 SSH 协议主要有两个好处,第一是认证后不再需要输入用户名和密码,第二就是提高了数据传输速度。

因此可以提前配置一对密钥供给后续使用。生成公钥的过程在所有操作系统上都差不多。首先先确认一下是否已经有一个公钥了。SSH 公钥默认储存在账户的主目录下的 ~/.ssh 目录。进去看看:

check to see if you have any existing SSH keys.
ls -al ~/.ssh

获取公钥内容
cat ~/.ssh/id_rsa.pub

获取私钥内容同理也是使用 cat 文件名
cat ~/.ssh/id_rsa

如果没有则需要手动创建:

1
ssh-keygen -t rsa -C "youremail@example.com"

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个 Key 也不是用于军事目的,所以可以不设置密码。

如果一切顺利的话,可以在用户主目录里找到 .ssh 目录,里面有 id_rsa 和 id_rsa.pub 两个文件,这两个就是 SSH Key 的秘钥对,id_rsa 是私钥,不能泄露出去,id_rsa.pub 是公钥,可以放心地告诉任何人。

为什么 GitHub 需要 SSH Key 呢?因为 GitHub 需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而 Git 支持 SSH 协议,所以,GitHub 只要知道了你的公钥,就可以确认只有你自己才能推送。

当然,GitHub 允许你添加多个 Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的 Key 都添加到 GitHub,就可以在每台电脑上往 GitHub 推送了。

如何激活 cat 命令

由于我是使用的是绿色版,则加入以下路径到 Path 中。
D:\exec\PortableGit\usr\bin