1. 仓库初始化与克隆
命令 | 解释 | 场景 |
---|---|---|
git init | 初始化本地仓库 | 新建项目时创建 Git 管理 |
git clone <url> | 克隆远程仓库到本地 | 下载开源项目或团队仓库 |
git remote add origin <url> | 添加远程仓库地址 | 关联本地仓库与远程仓库 |
git remote -v | 查看远程仓库信息 | 确认已配置的远程仓库 |
2. 基础修改与提交
命令 | 解释 | 场景 |
---|---|---|
git status | 查看工作区状态 | 确认哪些文件被修改/未跟踪 |
git add <file> | 将文件添加到暂存区 | 准备提交特定文件 |
git add . | 添加所有修改到暂存区 | 快速暂存全部变更 |
git commit -m "msg" | 提交变更到本地仓库 | 保存一个逻辑修改单元 |
git commit --amend | 修改最后一次提交 | 修正提交信息或漏掉的文件 |
3. 分支管理
命令 | 解释 | 场景 |
---|---|---|
git branch | 查看本地分支 | 确认当前分支和所有分支 |
git branch <name> | 创建新分支 | 开发新功能或修复 Bug |
git checkout <branch> | 切换到指定分支 | 切换工作上下文 |
git checkout -b <branch> | 创建并切换分支 | 快速开始新任务 |
git merge <branch> | 合并分支到当前分支 | 合并功能分支到 main |
git rebase <branch> | 变基当前分支 | 保持提交历史线性(需谨慎) |
git branch -d <branch> | 删除本地分支 | 清理已合并的分支 |
4. 远程协作
命令 | 解释 | 场景 |
---|---|---|
git fetch | 拉取远程更新(不自动合并) | 查看他人提交的变更 |
git pull | 拉取并合并远程分支 | 同步最新代码(= fetch + merge ) |
git push origin <branch> | 推送分支到远程仓库 | 分享代码或发起 PR |
git push -u origin <branch> | 推送并设置上游分支 | 首次推送分支时使用 |
git push --force | 强制推送(覆盖远程) | 修正提交历史(慎用!) |
5. 撤销与回退
命令 | 解释 | 场景 |
---|---|---|
git restore <file> | 撤销工作区修改 | 放弃未暂存的文件修改 |
git reset <file> | 从暂存区移除文件 | 取消 git add 操作 |
git reset --soft HEAD~1 | 撤销提交但保留修改 | 重新提交最后一次提交 |
git reset --hard HEAD~1 | 彻底回退到上一个提交 | 丢弃最近的所有修改 |
git revert <commit> | 创建反向提交撤销变更 | 安全撤销已推送的提交 |
6. 查看历史与差异
命令 | 解释 | 场景 |
---|---|---|
git log | 查看提交历史 | 追溯代码变更记录 |
git log --oneline --graph | 紧凑可视化历史 | 查看分支合并情况 |
git diff | 查看工作区与暂存区差异 | 确认未暂存的修改 |
git diff --cached | 查看暂存区与仓库差异 | 确认即将提交的内容 |
git show <commit> | 查看某次提交的详情 | 分析特定变更 |
7. 高级协作场景
命令 | 解释 | 场景 |
---|---|---|
git stash | 暂存当前修改 | 临时切换分支处理紧急任务 |
git stash pop | 恢复暂存的修改 | 回到之前的工作上下文 |
git cherry-pick <commit> | 复制特定提交到当前分支 | 移植某个 Bug 修复 |
git rebase -i HEAD~3 | 交互式变基 | 合并/修改提交历史 |
8. 典型工作流示例
场景1:修复 Bug 并提交 PR
# 1. 同步主分支
git checkout main
git pull origin main
# 2. 创建修复分支
git checkout -b fix-bug
# 3. 修改代码后提交
git add .
git commit -m "修复XX问题"
# 4. 推送到远程并发起 PR
git push -u origin fix-bug
场景2:撤销错误的提交
# 1. 查看提交历史找到错误提交的哈希值
git log --oneline
# 2. 回退到错误提交之前(保留修改)
git reset --soft abc1234
# 3. 重新提交
git commit -m "新的正确提交"
9. 注意事项
- 慎用
--force
:强制推送可能覆盖他人代码。 - 分支命名规范:如
feature/xxx
、fix/yyy
提高可读性。 - 提交原子性:一个提交只做一件事(便于回退和审查)。
- 频繁同步:开发前先
git pull
避免冲突。