Git 常用命令全指南
作为现代分布式版本控制的核心工具,Git 的命令虽然众多,但约 10–15 条日常命令 就能应对绝大部分协作需求。系统化掌握这些操作,不仅可以提高工作效率,还能避免错误操作导致的版本混乱与团队冲突。
本文分门别类罗列 Git 常用命令,并提供备注说明,最后附上实用建议,帮助你更灵活、高效地运用 Git。
基础配置与仓库初始化
适合首次使用环境或新项目准备阶段:
设置用户信息,只需设置一次,确保提交记录追踪用户身份。
git config --global user.name "你的姓名"
git config --global user.email "邮箱@domain.com"
查看与编辑配置,可检查当前设置,调整别名、颜色输出等项。
git config --list
git config --global -e
初始化本地仓库,若当前目录尚未被版本控制,使用此命令创建 .git 文件夹开始使用。
git init
克隆远程仓库到本地,将远程完整历史复制至本地,适用于协作项目首次 Checkout。
git clone <仓库地址> [本地目录]
工作区与暂存区管理(增删改)
围绕修改、添加、删除和文件移动等基本操作:
查看当前状态
git status 可快速显示暂存区与工作区差异,以及未跟踪或冲突文件。
添加到暂存区,可逐文件添加,也可一次性全部提交准备。
git add file.txt
git add dir/
git add .
分步暂存变更,交互式选择变更块进行提交。
git add -p
删除或取消跟踪文件
git rm file.txt # 删除并提交删除操作
git rm --cached file.txt # 仅取消跟踪但保留本地文件
git mv oldname newname # 重命名并纳入版本管理
提交与版本记录(Commit 相关)
从提交信息撰写、修正到版本回退处理:
标准提交
git commit -m "详细描述变更内容"
自动包括所有已 track 修改(无新增文件)
git commit -a -m "message"
修改上次提交内容或备注,若你忘了添加文件或提交信息打错,可直接修正上次提交。
git commit --amend -m "新的提交说明"
查看变更日志
git log
git log --oneline # 简洁视图
git log --stat # 含每次提交的修改统计
git log --graph --pretty=oneline # ASCII 分支结构图展示
分支管理常见流程
Git 的核心之一是轻量级分支,推荐掌握以下命令:
列出分支
git branch # 仅本地分支
git branch -r # 仅远程分支
git branch -a # 全部分支
创建与切换
git branch feature/new-stuff # 新建分支不切换
git checkout -b feature/xxx # 新建并切换
或者:
git switch -c feature/xxx
切换已有分支
git checkout feature/old
或者:
git switch feature/old
合并分支变更
git merge feature/xyz
摘取指定提交(Cherry-pick)
git cherry-pick
删除分支
git branch -d feature/foo # 已合并安全删除
git branch -D feature/foo # 强制删除
git push origin --delete feature/foo # 删除远程分支
远程仓库同步操作
配合 GitHub、GitLab、Git 服务器协作常用:
查看远程仓库列表
git remote -v
添加新的远程仓库
git remote add origin https://...
抓取远程更新(但不自动合并)
git fetch origin
拉取并合并远程分支到当前分支
git pull origin main
推送本地分支到远程
git push origin main
git push origin main:main # 明确指定分支映射
git push --all # 推送所有本地分支
git push origin --tags # 推送所有标签
强制覆盖推送(慎用)
git push origin dev --force
标签与版本标记(Tag)
用于标注正式版本或版本里程碑:
查看所有标签
git tag
创建标签
git tag v1.0.0 # 默认签名无说明
git tag -a v1.0.0 -m "说明" # 带注释的标签
查看标签详情
git show v1.0.0
删除标签
git tag -d v1.0.0 # 删除本地
git push origin :refs/tags/v1.0.0 # 删除远程标签
撤销变更与还原技巧
常见错误时的快速恢复方式:
丢弃工作区的修改
git checkout -- file.txt
git restore file.txt # Git 2.23+ 推荐用法
重置暂存区
git reset file.txt
git reset . # 清空全部暂存区变更
回退提交历史(不影响历史记录)
git revert HEAD
彻底回退到某个提交(慎用)
git reset --hard
找回误操作提交记录
git reflog
git reset --hard
暂存区切换(Stash)
临时储存当前修改,便于切换分支或处理紧急事务:
储存当前修改但不提交
git stash
查看 stash 列表
git stash list
恢复最近一次 stash
git stash pop
仅恢复不删除 stash
git stash apply
删除指定 stash
git stash drop stash@<指定stash>
清空所有 stash
git stash clear
仓库清理与维护命令
保持仓库整洁并优化性能:
自动打包与清理垃圾文件
git gc --auto
检查对象完整性
git fsck
列出未被追踪文件,查看被忽略文件情况
git clean -n
git clean -f
别名设置与效率优化建议
为常用命令添加简洁别名,大幅提升效率:
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.lg "log --oneline --graph --decorate --all"
这样你就可以使用 git co 检出分支,git lg 查看美化日志。
实战建议:Git 使用场景技巧提示
分支管理:使用 feature/*、bugfix/* 等命名规范,新功能开发使用分支载体,合并到主分支后删除。
合并策略:团队协作常用 git pull --rebase 保持提交历史线性。
Commit 书写规范:尽量写短句 + 描述意图。如:feat: 添加用户登录逻辑。
冲突处理:冲突时优先手动检查,不盲目使用 --ours 或 --theirs 强制覆盖。
主干保护:通过远程分支保护机制(如 GitHub Protect),禁止直接向 main 分支强推。
每日报周期:日终可执行 git fetch; git pull 确保本地代码同步,不错失远程他人提交。
掌握这些 Git 常用命令与实用技巧,相当于拥有了一把轻量、高效、容错能力强的版本管理利器。从基础配置、日常开发流程、到回退清理与团队协作细节,你可以依据项目需求灵活调用。建议每个开发者记住核心 10–15 条命令,剩余命令遇到需求即查(或设别名)。配合良好提交规范与团队协作流程,让 Git 真正成为你工作中的得力助手。