安装与配置
本章要点
- 在 Windows / macOS / Linux 上安装 Git
- 三份配置文件的优先级:
system→global→local - 配置用户身份、默认编辑器、换行符
- 配置命令别名(alias)提高效率
.gitignore忽略规则- 中文显示与乱码问题
安装 Git
检查是否已安装
bash
$ git --version
# git version 2.43.0Windows
- 从官网 https://git-scm.com/download/win 下载安装包,一路 Next。
- 安装时建议勾选"Git Bash"组件(自带 Unix 风格终端,教程中的命令都可以在里面跑)。
- 也可以用包管理器:
winget install --id Git.Git或choco install git。
macOS
- 自带 Xcode Command Line Tools:首次输入
git会自动弹出安装提示。 - 用 Homebrew:
brew install git(版本更新)。 - 用官网 pkg 安装包。
Linux
bash
# Debian / Ubuntu
sudo apt install git
# Fedora / RHEL
sudo dnf install git
# Arch
sudo pacman -S git安装完成后验证:
bash
$ git --versionGit 配置体系
三个配置级别
| 级别 | 配置项前缀 | 生效范围 | 配置文件位置 |
|---|---|---|---|
| system | git config --system | 本机所有用户 | /etc/gitconfig |
| global | git config --global | 当前用户所有仓库 | ~/.gitconfig(macOS/Linux)或 %USERPROFILE%\.gitconfig |
| local | git config --local | 当前仓库 | <仓库>/.git/config |
优先级:local > global > system(越具体越优先)。
bash
$ git config --list # 查看当前生效的全部配置(含各级别合并结果)
$ git config --list --show-origin # 同时显示每个配置来自哪个文件
$ git config --global user.name # 查看某一项配置必做配置:身份信息
每次提交都会记录作者,必须配置姓名和邮箱(不配置则无法提交,或提交显示为错误身份):
bash
$ git config --global user.name "张三"
$ git config --global user.email "zhangsan@example.com"💡 邮箱建议使用与 GitHub/GitLab 一致的邮箱,提交才能正确关联到你的账号。 💡 如果只想给某个特定仓库用不同身份(比如公司邮箱),去掉
--global在该仓库内配置:bash$ git config user.name "李四" $ git config user.email "lisi@company.com"
推荐的基础配置
bash
# 默认编辑器(未配置则提交时可能弹出 vim)
$ git config --global core.editor "code --wait" # VS Code
$ git config --global core.editor "vim" # 或 vim
# 提交信息自动带上模板注释(默认开启即可)
$ git config --global commit.template
# 大小写敏感:默认关闭,Windows/macOS 建议打开以免文件改名出问题
$ git config --global core.ignorecase false
# 换行符自动转换(Windows 上推荐)
$ git config --global core.autocrlf true
# 记住 push 时自动设置上游分支
$ git config --global push.autoSetupRemote true
# 显示带颜色的输出
$ git config --global color.ui auto配置别名(alias)
别名把长命令缩短,强烈推荐:
bash
$ git config --global alias.st status
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.lg "log --oneline --graph --all --decorate"
$ git config --global alias.last "log -1 HEAD --stat"
$ git config --global alias.unstage "reset HEAD --"配置后:
bash
$ git st # = git status
$ git lg # 带分支图的历史,最常用的查看命令⚠️ 别名只在你自己的机器上生效,团队协作时别人看不到你的别名,文档/教程里还是写全名。
.gitignore:忽略不需要跟踪的文件
为什么需要
以下内容不应该进入版本库:
- 编译产物:
*.o、*.class、node_modules/、target/、dist/ - 依赖目录:
vendor/、.venv/ - 环境/密钥文件:
.env、*.pem、config.local.js - IDE/系统文件:
.idea/、.vscode/(部分共享配置除外)、.DS_Store
基本语法
text
# 注释以 # 开头
# 忽略所有 .log 文件
*.log
# 忽略目录(含目录下所有内容)
node_modules/
# 只忽略根目录下的 build 目录(/ 表示相对 .gitignore 所在位置)
/build
# 不忽略(取反)特定文件
!build/keep.txt
# 忽略任意层级下名为 temp 的文件或目录
temp
# 忽略所有以 . 开头的文件(隐藏文件)
.*使用方式
bash
$ git init
$ touch .gitignore # 在仓库根目录创建
$ git status # 被忽略的文件不再显示为 untracked⚠️
.gitignore只对尚未被跟踪的文件生效。如果文件已经被git add提交过,加入.gitignore不会让它消失,需要先移除跟踪:bash$ git rm --cached 文件名 # 从跟踪中移除但保留本地文件
💡 GitHub 提供各语言/框架的现成模板:https://github.com/github/gitignore
全局忽略
有些文件所有仓库都不想跟踪(如 .DS_Store),可以配置全局忽略文件:
bash
$ git config --global core.excludesfile ~/.gitignore_global
$ echo ".DS_Store" >> ~/.gitignore_global中文显示问题
Git 默认会把中文文件名转义为八进制序列(\345\274\200\345\217\221.md 之类),配置以下两项可正常显示中文:
bash
$ git config --global core.quotepath false # 文件名正常显示中文
$ git config --global gui.encoding utf-8 # GUI 编码
$ git config --global i18n.commit.encoding utf-8 # 提交信息编码帮助命令
bash
$ git help <命令> # 打开完整手册(浏览器)
$ git <命令> -h # 简洁帮助
$ git help -a # 列出所有命令