Git常用命令

nodcat
24
2025-06-18

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. 注意事项

  1. 慎用 --force:强制推送可能覆盖他人代码。
  2. 分支命名规范:如 feature/xxxfix/yyy 提高可读性。
  3. 提交原子性:一个提交只做一件事(便于回退和审查)。
  4. 频繁同步:开发前先 git pull 避免冲突。
动物装饰