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 | ./config |
mac 上安装 Git
推荐使用 homebrew 进行安装
Windows 上安装 Git
msysgit 是 Windows 版的 Git,
- git-for-windows Mirror 镜像下载 https://npm.taobao.org/mirrors/git-for-windows/
- 官网下载 https://git-scm.com/downloads
安装完成后,在开始菜单里找到 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 | git config user.name |
打开配置文件
1 | git config -e |
配置用户名和邮箱
因为 Git 是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和 Email。
最小化配置
1 | # 一般配置到用户级别即可 |
推荐的增强配置
配置 Git 处理行结束符
windows 、mac 和 linux 统一使用 git config --global core.autocrlf input
1 | #提交包含混合换行符的文件时给出警告 |
其中 true 表示拒绝提交包含混合换行符的文件,false 表示允许提交包含混合换行符的文件
按仓库设置行结束符
你可以选择配置 “.gitattribute” 文件来管理 Git 读取特定存储库中的行结束符的方式。 将此文件提交到存储库时,它将覆盖所有存储库贡献者的 core.autocrlf 设置。 这可确保所有用户的行为一致,而不管其 Git 设置和环境如何。
“.gitattributes” 文件必须在存储库的根目录下创建,且像任何其他文件一样提交。
下面是一个 “.gitattributes” 示例文件。 您可以将其用作仓库的模板:
1 | # Set the default behavior, in case people don't have core.autocrlf set. |
为确保存储库中的所有行结束符与新配置匹配,请使用 Git 备份文件,删除存储库中的所有文件(.git 目录除外),然后使用命令 $ git add --renormalize .
一次性恢复所有文件。
设置快捷命令
设置 alias, 命令为 git config alias.[别名] [原命令],使用别名简化常用命令。如果原命令有空格, 需要加引号引起来。
1 | git config --global alias.ci commit |
美化 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 | git branch -m master main |
创建 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