git常用命令大全
- 一、基础配置与初始化
- 1. 查看与设置用户信息
- 2. 初始化仓库
- 二、文件状态与暂存区操作
- 1. 查看状态
- 2. 添加文件到暂存区
- 3. 移除文件
- 三、提交与历史管理
- 1. 提交变更
- 2. 查看提交历史
- 3. 查看差异
- 四、分支管理(核心!)
- 1. 查看与创建分支
- 2. 切换与合并分支
- 3. 删除分支
- 4. 重命名分支
- 五、变基(Rebase)与历史重写
- 1. 变基操作
- 2. 交互式变基(整理提交)
- 六、远程仓库协作
- 1. 查看与管理远程仓库
- 2. 推送与拉取
- 3. 获取远程更新(不自动合并)
- 七、回退与撤销操作
- 八、标签(Tag)管理
- 九、实用技巧与高级命令
- 1. 查看某行代码是谁修改的
- 2. 临时保存工作进度
- 3. 查看仓库大小与大文件
- 4. 清理未跟踪文件
- 5. 设置别名(提升效率)
本文系统梳理了 Git 的核心命令,涵盖配置、仓库管理、分支操作、提交与回退、远程协作、日志查看、标签管理、实用技巧等八大模块,助你从入门走向熟练。
一、基础配置与初始化
1. 查看与设置用户信息
# 全局设置(推荐)
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"# 查看配置
git config --list
git config user.name # 查看某项配置
💡 首次使用 Git 时务必配置用户名和邮箱,它们将作为提交记录的作者信息。
2. 初始化仓库
# 初始化本地仓库
git init# 克隆远程仓库
git clone <repository-url>
git clone <repository-url> <directory-name> # 指定本地目录名
二、文件状态与暂存区操作
1. 查看状态
git status # 查看工作区与暂存区状态
git status -s # 简洁模式(short status)
2. 添加文件到暂存区
git add <file> # 添加单个文件
git add . # 添加当前目录所有变更(不含 .gitignore 忽略的)
git add -A # 添加所有变更(包括删除)
git add -u # 仅添加已跟踪文件的修改和删除
3. 移除文件
git rm <file> # 从工作区和暂存区删除文件
git rm --cached <file> # 仅从暂存区移除(保留本地文件,常用于 .gitignore)
三、提交与历史管理
1. 提交变更
git commit -m "提交说明" # 提交暂存区内容
git commit -am "提交说明" # 自动 add 已跟踪文件并提交(不包含新文件)
git commit --amend # 修改最后一次提交(可改内容或注释)
2. 查看提交历史
git log # 完整日志
git log --oneline # 单行简洁日志
git log --graph # 图形化分支历史
git log --author="name" # 按作者过滤
git log -p -2 # 显示最近2次提交的差异
3. 查看差异
git diff # 工作区 vs 暂存区
git diff --cached # 暂存区 vs 最后一次提交
git diff HEAD # 工作区 vs 最后一次提交
git diff <commit1> <commit2> # 两次提交之间的差异
四、分支管理(核心!)
1. 查看与创建分支
git branch # 查看本地分支(* 表示当前分支)
git branch -a # 查看所有分支(含远程)
git branch <branch-name> # 创建新分支(不切换)
2. 切换与合并分支
git checkout <branch-name> # 切换分支
git switch <branch-name> # Git 2.23+ 推荐:切换分支(更语义化)
git checkout -b <new-branch> # 创建并切换到新分支
git switch -c <new-branch> # 同上(新语法)git merge <branch-name> # 合并指定分支到当前分支(保留历史)
3. 删除分支
git branch -d <branch-name> # 删除已合并的分支
git branch -D <branch-name> # 强制删除(未合并也删)
4. 重命名分支
git branch -m <old-name> <new-name> # 重命名当前分支
五、变基(Rebase)与历史重写
1. 变基操作
git rebase <target-branch> # 将当前分支变基到目标分支
git rebase --continue # 解决冲突后继续 rebase
git rebase --abort # 放弃 rebase,回到操作前状态
2. 交互式变基(整理提交)
git rebase -i HEAD~3 # 整理最近3次提交
# 在编辑器中可选择:
# pick:保留提交
# squash:合并到上一个提交
# reword:修改提交信息
# drop:删除提交
六、远程仓库协作
1. 查看与管理远程仓库
git remote -v # 查看远程仓库地址
git remote add <name> <url> # 添加远程仓库(如 origin)
git remote remove <name> # 删除远程仓库
2. 推送与拉取
git push origin <branch> # 推送本地分支到远程
git push -u origin <branch> # 首次推送并设置上游跟踪
git push --force # 强制推送(慎用!)
git push --force-with-lease # 更安全的强制推送(推荐)git pull # 拉取并自动合并(= fetch + merge)
git pull --rebase # 拉取并变基(保持线性历史)
💡 建议:配置
git config --global pull.rebase true
,让git pull
默认使用 rebase。
3. 获取远程更新(不自动合并)
git fetch origin # 获取远程所有分支更新
git fetch origin <branch> # 获取指定分支更新
七、回退与撤销操作
场景 | 命令 | 说明 |
---|---|---|
撤销工作区修改 | git checkout -- <file> | 丢弃工作区变更(恢复到暂存区状态) |
撤销暂存区添加 | git reset HEAD <file> | 将文件从暂存区移回工作区 |
回退到某次提交(保留修改) | git reset --soft <commit> | 撤销提交,但保留暂存区和工作区 |
回退到某次提交(保留工作区) | git reset --mixed <commit> | 默认行为,撤销提交和暂存区,保留工作区 |
彻底回退(危险!) | git reset --hard <commit> | 丢弃所有后续提交和修改 |
新建提交来撤销变更 | git revert <commit> | 安全回退,生成新提交(适合已推送的提交) |
八、标签(Tag)管理
git tag # 列出所有标签
git tag -l "v1.*" # 模糊搜索标签git tag <tagname> # 轻量标签(指向提交)
git tag -a <tagname> -m "说明" # 附注标签(推荐)git show <tagname> # 查看标签信息git push origin <tagname> # 推送单个标签
git push origin --tags # 推送所有标签
九、实用技巧与高级命令
1. 查看某行代码是谁修改的
git blame <file>
2. 临时保存工作进度
git stash # 保存当前工作区和暂存区
git stash list # 查看 stash 列表
git stash pop # 恢复最近一次 stash 并删除
git stash apply # 恢复 stash 但保留记录
3. 查看仓库大小与大文件
git count-objects -v -H # 查看仓库对象大小
4. 清理未跟踪文件
git clean -n # 预览将删除的文件
git clean -f # 删除未跟踪文件
git clean -fd # 删除未跟踪文件和目录
5. 设置别名(提升效率)
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.lg "log --oneline --graph --all"
📚 推荐学习资源:
- 官方 Pro Git 书籍(https://git-scm.com/book/zh/v2)
- 可视化学习工具:Learn Git Branching