Git 安装与配置
Git 是最流行的分布式版本控制系统。
这页适合作为“第一次把 Git 配顺手”的完整入口,不只是会 clone / commit / push,还要把身份、换行符、认证方式、日常同步习惯一次理顺。很多人对 Git 的痛苦,并不是命令难,而是初始化配置没做好。
安装
winget install Git.Git
或从官网下载:git-scm.com/download/win
基础配置
git config --global user.name "[name]"
git config --global user.email "[email]"
git config --global init.defaultBranch main
git config --global core.autocrlf true
推荐继续补上几项高频配置:
git config --global pull.rebase true
git config --global fetch.prune true
git config --global credential.helper manager-core
补充说明:
- Windows 原生开发通常用
core.autocrlf true - WSL、Linux、macOS 更推荐
core.autocrlf input pull.rebase true可以减少无意义的 merge commitfetch.prune true会自动清理已删除的远程分支引用
推荐配置顺序
建议第一次配置 Git 时按下面顺序完成:
- 安装 Git 并确认
git --version - 设置
user.name、user.email - 选择 SSH 或 HTTPS 认证方式
- 处理换行符策略与凭据缓存
- 再开始 clone 仓库与日常提交流程
SSH 密钥
# 生成密钥
ssh-keygen -t ed25519 -C "[email]"
# 查看公钥
cat ~/.ssh/id_ed25519.pub
将公钥添加到 GitHub:Settings → SSH and GPG keys → New SSH key
测试连接:
ssh -T git@github.com
HTTPS 还是 SSH
两种方式都能用,但长期开发通常更推荐 SSH:
- SSH:配置一次后更省心,适合经常 push / pull 的开发机器
- HTTPS:更适合临时环境、公司受限网络或只偶尔访问仓库的场景
如果你同时在 Windows 和 WSL 里开发,建议尽量统一一种方式,不然容易出现一边能推、一边权限失败的情况。
常用命令
# 克隆仓库
git clone <url>
# 查看状态
git status
# 暂存与提交
git add -A
git commit -m "feat: 描述"
# 推送与拉取
git push
git pull --rebase
# 分支操作
git branch feature/xxx
git checkout -b feature/xxx
git merge feature/xxx
git branch -d feature/xxx
# 查看日志
git log --oneline --graph --all
常用别名
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status
git config --global alias.lg "log --oneline --graph --all"
git config --global alias.cm "commit -m"
git config --global alias.last "log -1 HEAD"
进阶技巧
.gitignore 全局配置
git config --global core.excludesfile ~/.gitignore_global
常用全局忽略:
.DS_Store
Thumbs.db
*.swp
.env
.vscode/
node_modules/
交互式 rebase
# 修改最近 3 次提交
git rebase -i HEAD~3
stash 暂存
git stash # 暂存当前修改
git stash pop # 恢复暂存
git stash list # 查看暂存列表
git stash drop # 删除暂存
撤销操作
# 撤销最近一次提交(保留修改)
git reset --soft HEAD~1
# 撤销暂存
git restore --staged <file>
# 丢弃工作区修改
git restore <file>
日常工作流建议
一个相对稳妥的日常节奏通常是:
git switch main
git pull --rebase
git switch -c feature/xxx
# 开发中
git status
git add -A
git commit -m "feat: 描述"
# 同步主线
git fetch origin
git rebase origin/main
git push -u origin feature/xxx
如果团队走 Pull Request 流程,尽量避免长期在 main 直接开发;把主分支保持在“随时可发布”的状态,会让 CI、回滚和协作都轻松很多。
常见问题
Permission denied (publickey)
- 检查
~/.ssh/id_ed25519.pub是否真的加到平台账号里 - 确认当前 clone 地址是不是
git@github.com:... - Windows 与 WSL 使用的是不同家目录时,要注意密钥文件不共用
Your branch and 'origin/main' have diverged
通常说明本地和远程都有新提交。优先尝试:
git pull --rebase
如果之前已经产生冲突,先解决冲突、git add 后再执行:
git rebase --continue
换行符反复变化
这通常不是代码真改了,而是行尾格式没统一。Windows、WSL、CI 同时参与时,尤其要尽早确认:
- 当前仓库是否有
.gitattributes - 团队是否统一使用 LF
- 本机是否把
core.autocrlf配成了与环境不匹配的值
延伸阅读
Conventional Commits 规范
type(scope): 简短描述
feat: 新功能
fix: 修复 bug
refactor: 重构
style: 样式调整
perf: 性能优化
test: 测试
docs: 文档
chore: 杂项
参考链接
- Windows 重装部署清单 — 重装后的主清单入口
- Windows 重装部署清单(详情) — 逐项版本与下载链接
- Git 官网 — 下载与文档
- Git GitHub — 源码
- Pro Git 中文版 — 免费电子书
- GitHub SSH 文档 — 官方指南
- Conventional Commits — 提交规范