Git 命令分类
以下是整理的 Git 命令分类及中文说明,按功能分组展示:
一、仓库操作
命令 | 说明 |
---|
git init | 初始化当前目录为 Git 仓库 |
git clone <url> | 克隆远程仓库到本地 |
git remote add <name> <url> | 添加远程仓库地址并命名 |
git remote -v | 查看所有远程仓库地址 |
git remote rm <name> | 删除指定的远程仓库 |
二、提交与修改
命令 | 说明 |
---|
git add <file> | 将文件添加到暂存区 |
git add . | 将所有修改的文件添加到暂存区 |
git commit -m "msg" | 提交暂存区内容并添加描述信息 |
git commit --amend | 修改最后一次提交(可修正描述或文件) |
git reset <file> | 将文件从暂存区移出(保留工作区修改) |
git reset --hard <commit> | 重置工作区和暂存区到指定提交(危险操作) |
三、分支管理
命令 | 说明 |
---|
git branch | 查看本地所有分支(当前分支前加 * ) |
git branch <name> | 创建新分支 |
git checkout <branch> | 切换到指定分支 |
git checkout -b <branch> | 创建并切换到新分支 |
git merge <branch> | 将指定分支合并到当前分支 |
git branch -d <branch> | 删除本地分支(需已合并) |
git branch -D <branch> | 强制删除本地分支(未合并也会删除) |
四、查看状态与历史
命令 | 说明 |
---|
git status | 查看工作区和暂存区状态 |
git log | 查看提交历史(按时间倒序) |
git log --oneline | 简洁模式查看提交历史 |
git log -p | 查看提交历史的详细修改内容 |
git diff | 查看工作区与暂存区的差异 |
git diff --cached | 查看暂存区与最新提交的差异 |
五、远程协作
命令 | 说明 |
---|
git pull | 拉取远程分支并合并到当前分支(fetch + merge ) |
git fetch | 仅拉取远程分支更新(不自动合并) |
git push | 推送本地提交到远程仓库 |
git push -u origin <branch> | 推送分支并设置远程跟踪 |
git push --force | 强制推送(覆盖远程提交,慎用) |
六、撤销与恢复
命令 | 说明 |
---|
git restore <file> | 恢复工作区文件到最近提交状态 |
git restore --staged <file> | 将文件从暂存区移出(不恢复工作区) |
git revert <commit> | 创建一个新提交来撤销指定提交的修改 |
git stash | 临时保存工作区未提交的修改 |
git stash pop | 恢复最近一次暂存的修改 |
七、标签管理
命令 | 说明 |
---|
git tag | 查看所有标签 |
git tag <name> | 在当前提交创建轻量标签 |
git tag -a <name> -m "msg" | 创建带注释的标签 |
git push origin <tag> | 推送标签到远程仓库 |
git tag -d <name> | 删除本地标签 |
八、高级操作
命令 | 说明 |
---|
git rebase <branch> | 将当前分支变基到目标分支(重写提交历史) |
git cherry-pick <commit> | 将指定提交应用到当前分支 |
git bisect | 使用二分查找定位引入问题的提交 |
git submodule | 管理子模块(嵌套的 Git 仓库) |
九、配置相关
命令 | 说明 |
---|
git config --global user.name "name" | 设置全局用户名 |
git config --global user.email "email" | 设置全局邮箱 |
git config --list | 查看所有配置项 |
以上为 Git 常用命令分类整理,可根据实际需求选择使用。建议结合 --help
参数查看详细用法(如 git commit --help
)。
Git 操作案例
以下是一个完整的 Git 操作案例,覆盖所有分类中的命令,模拟从零开始参与一个团队项目的全流程:
1. 初始化与克隆仓库
# 1.1 初始化本地仓库(如果是新项目)
mkdir my-project && cd my-project
git init # 初始化空仓库
# 1.2 克隆远程仓库(如果是已有项目)
git clone https://github.com/team/project.git
cd project
2. 配置用户信息
git config --global user.name "YourName"
git config --global user.email "your@email.com"
git config --list # 验证配置
3. 基础开发流程
# 3.1 创建并切换分支
git checkout -b feature/login # 创建功能分支
# 3.2 修改文件并提交
echo "console.log('Login page')" > login.js
git add . # 添加到暂存区
git commit -m "Add login page skeleton"
# 3.3 查看状态和历史
git status # 查看当前状态
git log --oneline # 查看简洁提交历史
4. 远程协作
# 4.1 添加远程仓库(如果未克隆)
git remote add origin https://github.com/team/project.git
git remote -v # 查看远程仓库
# 4.2 推送分支到远程
git push -u origin feature/login
# 4.3 模拟队友提交后拉取更新
git fetch # 先获取远程更新
git merge origin/main # 合并主分支更新
# 或使用快捷方式:
git pull origin main
5. 撤销与恢复
# 5.1 误删文件恢复
rm login.js
git restore login.js # 从最近提交恢复
# 5.2 撤销暂存
git add login.js
git restore --staged login.js # 取消暂存
# 5.3 紧急切换任务(暂存当前修改)
git stash # 临时保存工作区
git checkout main # 切换到其他分支处理问题
git stash pop # 恢复暂存修改
6. 分支合并
# 6.1 合并到主分支
git checkout main
git merge feature/login # 合并功能分支
# 6.2 解决冲突后提交
git add conflicted-file.js
git commit -m "Resolve merge conflict"
# 6.3 删除已合并分支
git branch -d feature/login
7. 版本回退
# 7.1 查看提交历史找到目标commit hash
git log -p
# 7.2 回退到指定提交(危险操作)
git reset --hard a1b2c3d # 彻底回退
# 7.3 安全撤销(推荐)
git revert e4f5g6h # 创建新提交来撤销指定提交
8. 标签管理
# 8.1 创建发布标签
git tag v1.0.0 -m "Release version 1.0.0"
git push origin v1.0.0 # 推送标签
# 8.2 删除标签
git tag -d v0.9.0
9. 高级操作
# 9.1 变基(整理提交历史)
git rebase main # 将当前分支变基到main
# 9.2 选择性应用提交
git cherry-pick 32a45bc # 只应用特定提交
# 9.3 二分法查BUG
git bisect start
git bisect bad # 标记当前版本有BUG
git bisect good v1.0.0 # 标记过去正常版本
# Git会自动帮你二分测试...
10. 子模块管理
# 10.1 添加子模块
git submodule add https://github.com/lib/awesome.git
# 10.2 更新子模块
git submodule update --init --recursive
最终清理
# 删除远程分支(已合并)
git push origin --delete feature/login
# 强制推送(特殊情况下使用)
git push --force origin main
案例总结
- 初始化 → 开发新功能 → 处理团队协作 → 发布版本
- 覆盖了日常开发中的核心场景:
- 分支管理(创建/合并/删除)
- 代码撤销(文件/提交/分支)
- 远程协作(pull/push/fetch)
- 紧急情况处理(stash/rebase)
- 危险操作(如
reset --hard
和 force push
)已标注,需谨慎使用