Skip to content

安装与配置

本章要点

  • 在 Windows / macOS / Linux 上安装 Git
  • 三份配置文件的优先级:systemgloballocal
  • 配置用户身份、默认编辑器、换行符
  • 配置命令别名(alias)提高效率
  • .gitignore 忽略规则
  • 中文显示与乱码问题

安装 Git

检查是否已安装

bash
$ git --version
# git version 2.43.0

Windows

  1. 从官网 https://git-scm.com/download/win 下载安装包,一路 Next。
  2. 安装时建议勾选"Git Bash"组件(自带 Unix 风格终端,教程中的命令都可以在里面跑)。
  3. 也可以用包管理器:winget install --id Git.Gitchoco 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 --version

Git 配置体系

三个配置级别

级别配置项前缀生效范围配置文件位置
systemgit config --system本机所有用户/etc/gitconfig
globalgit config --global当前用户所有仓库~/.gitconfig(macOS/Linux)或 %USERPROFILE%\.gitconfig
localgit 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*.classnode_modules/target/dist/
  • 依赖目录:vendor/.venv/
  • 环境/密钥文件:.env*.pemconfig.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             # 列出所有命令