全部文章

Git 安装与配置

Git 版本控制工具的安装、配置、常用命令与进阶技巧

目录 20 节

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 commit
  • fetch.prune true 会自动清理已删除的远程分支引用

推荐配置顺序

建议第一次配置 Git 时按下面顺序完成:

  1. 安装 Git 并确认 git --version
  2. 设置 user.nameuser.email
  3. 选择 SSH 或 HTTPS 认证方式
  4. 处理换行符策略与凭据缓存
  5. 再开始 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:    杂项

参考链接

阅读建议
  • - 先读标题和摘要,再结合目录决定从哪个章节开始精读。
  • - 看到具体命令、配置或步骤时,尽量在自己的环境里同步验证。
  • - 这类文档通常和本地环境有关,建议同时打开终端或编辑器对照操作。
适合谁看
  • - 希望把零散经验整理成长期可复用工作流的人
  • - 正在搭建开发环境、统一工具链或排查构建问题的开发者
  • - 希望阅读时顺手建立自己的操作清单或收藏体系的人
执行前检查
  • - 先浏览标题、摘要和目录,带着问题阅读会更高效
  • - 确认本机 Node、包管理器、终端和仓库依赖版本是否一致
  • - 如果页面里提到相关文档,尽量一起打开对照,效果通常更完整
同类内容
← 上一篇Sandboxie-Plus