Git 日常开发常用命令全攻略:从入门到实战

📅 2026/7/22 6:29:50
Git 日常开发常用命令全攻略:从入门到实战
一份覆盖日常开发 90% 场景的 Git 命令速查手册前言对于每一位开发者来说Git 是必备的生存技能。无论是个人项目的版本管理还是团队多人协同开发Git 都是行业统一的标准工具。很多新手只会简单的add、commit、push遇到代码冲突、版本回退、分支合并等问题时就束手无策。本文将从实战角度出发系统梳理日常开发中最常用的 Git 命令按场景分类附带实际示例帮你快速上手并随时查阅。一、Git 核心概念速览在开始敲命令之前先理解 Git 的四大工作区域区域说明工作区本地文件夹我们写代码的地方暂存区临时存放修改等待提交也叫 Index本地仓库本地永久保存所有版本记录远程仓库GitHub / Gitee / GitLab 上的云端仓库代码流转顺序工作区 → 暂存区 → 本地仓库 → 远程仓库二、初次使用安装与配置2.1 安装 Git官网下载对应系统版本默认安装即可https://git-scm.com/安装完成后验证git --version2.2 配置用户信息必须配置Git 需要知道你是谁每次提交都会记录这些信息# 全局配置所有项目生效 git config --global user.name 你的名字 git config --global user.email 你的邮箱 # 查看所有配置 git config --list建议邮箱与 GitHub/GitLab 账号一致以便提交记录正确关联。2.3 配置 SSH 密钥免密推送ssh-keygen -t ed25519 -C 你的邮箱一路回车然后在~/.ssh/目录找到id_ed25519.pub复制公钥内容配置到远程仓库。三、仓库操作初始化与克隆3.1 初始化新仓库# 在当前目录初始化 Git 仓库 git init执行后会在当前目录创建.git文件夹Git 开始跟踪该目录下的文件。3.2 克隆远程仓库# 克隆远程仓库到本地 git clone 仓库地址 # 浅克隆仅拉取最近一次提交加快速度 git clone 仓库地址 --depth1[reference:11]四、日常开发核心四步曲这是每天使用频率最高的四个命令4.1 查看状态 —git status# 查看工作区和暂存区状态 git status # 简洁模式 git status -s[reference:13]红色 未暂存绿色 已暂存。这是提交前必看的命令。4.2 添加文件到暂存区 —git add# 添加指定文件 git add 文件名 # 添加所有变更新文件 修改 git add . # 只添加已被跟踪的文件的修改/删除不包括新文件 git add -u # 添加所有变更等同于 git add . git add -u git add -A[reference:16]4.3 提交到本地仓库 —git commit# 提交并添加说明 git commit -m 本次修改的说明 # 修改上一次提交漏文件或写错消息时使用 git commit --amend[reference:17]提交信息规范建议使用动词开头如fix、add、update、refactor简洁明确。4.4 推送到远程仓库 —git push# 推送到远程仓库的指定分支 git push origin main # 第一次推送时设置上游分支之后可直接用 git push git push -u origin feature/login[reference:19] # 强制推送慎用建议使用 --force-with-lease 更安全 git push --force-with-lease[reference:20]五、查看历史与差异5.1 查看提交历史 —git log# 查看完整提交历史 git log # 简洁模式每条一行 git log --oneline # 图形化展示分支合并历史 git log --graph[reference:21] # 查看某人的提交记录 git log --author用户名 # 查看某个文件的详细修改内容 git log -p 文件5.2 查看差异 —git diff# 查看工作区未暂存的更改 git diff # 查看暂存区的更改 git diff --staged[reference:22]六、分支管理分支是 Git 最强大的功能之一可以让开发工作互不影响。6.1 查看与创建分支# 列出所有本地分支* 表示当前分支 git branch # 创建新分支 git branch 分支名 # 创建并切换到新分支推荐 git checkout -b 分支名 # 或使用新命令Git 2.23 git switch -c 分支名[reference:24]6.2 切换分支# 老命令 git checkout 分支名 # 新命令推荐语义更清晰 git switch 分支名[reference:25]6.3 合并分支# 将指定分支合并到当前分支 git merge 分支名[reference:26]合并前先确保当前分支是目标分支如main再执行合并。6.4 删除分支# 删除已合并的分支 git branch -d 分支名 # 强制删除分支未合并也能删 git branch -D 分支名[reference:28] # 删除远程分支 git push origin --delete 分支名[reference:29]七、远程仓库操作7.1 查看与添加远程仓库# 查看远程仓库地址 git remote -v # 添加远程仓库 git remote add origin 仓库地址 # 删除远程仓库连接 git remote remove origin[reference:30]7.2 拉取更新# 拉取远程更新并自动合并等价于 git fetch git merge git pull origin main # 获取远程更新但不合并先查看差异再决定 git fetch[reference:31] # 推荐保持线性历史的拉取方式 git pull --rebase[reference:32]⚠️注意git pull可能触发自动合并若存在冲突需手动解决。八、撤销与回退“后悔药”功能8.1 撤销工作区修改# 撤销对工作区文件的修改未 add 之前 git checkout -- 文件 # 或使用新命令 git restore 文件[reference:34]8.2 撤销暂存区# 将文件从暂存区移回工作区 git reset HEAD 文件 # 或使用新命令 git restore --staged 文件[reference:35]8.3 版本回退# 回退到某提交保留所有改动工作区 暂存区 git reset --soft commit-id # 回退并清除暂存区但保留工作区改动 git reset --mixed commit-id # 回退并清除所有改动危险慎用 git reset --hard commit-id[reference:36] # 安全回退生成一个新提交来撤销某次提交不破坏历史 git revert commit-id[reference:37]⚠️团队协作中优先使用git revert避免使用git reset --hard因为后者会改写历史。九、临时保存Stash神技当需要临时切换分支但当前修改还没完成时# 暂存当前所有未提交的修改 git stash # 查看所有暂存记录 git stash list # 恢复最近一次 stash不删除记录 git stash apply # 恢复并删除最近一次 stash git stash pop # 删除最近一次 stash git stash drop[reference:39]十、标签管理用于标记重要的版本如 v1.0、v2.0# 查看所有标签 git tag # 创建标签 git tag 标签名 # 删除标签 git tag -d 标签名 # 推送指定标签到远程 git push origin 标签名 # 推送所有标签 git push origin --tags[reference:40]十一、常用命令速查表场景命令说明初始化git init初始化 Git 仓库克隆git clone url克隆远程仓库查看状态git status查看文件状态添加git add .添加所有变更到暂存区提交git commit -m msg提交到本地仓库推送git push origin main推送到远程拉取git pull拉取并合并远程更新获取git fetch获取远程更新但不合并查看日志git log --oneline简洁查看提交历史查看差异git diff查看未暂存的更改创建分支git checkout -b name创建并切换分支切换分支git switch name切换分支合并分支git merge name合并分支到当前删除分支git branch -d name删除已合并的分支暂存修改git stash临时保存当前修改恢复暂存git stash pop恢复并删除 stash撤销文件git restore file撤销工作区修改安全回退git revert hash生成新提交撤销某次提交查看配置git config --list查看所有 Git 配置十二、常见问题与避坑指南12.1 提交信息写错了怎么办git commit --amend -m 新的提交信息12.2 不小心 add 了不该 add 的文件git restore --staged 文件名12.3 代码冲突了怎么办手动打开冲突文件解决冲突内容git add 解决后的文件git commit -m 解决冲突git push12.4 想回到某个历史版本看看# 先查看历史找到 commit-id git log --oneline # 临时切换到该版本不会丢失当前修改 git checkout commit-id # 回到最新版本 git switch main12.5 忘记拉取最新代码就提交了git pull --rebase # 如果有冲突解决后继续 git add . git rebase --continue git push写在最后Git 的命令虽多但日常开发中高频使用的其实只有 20 条左右。建议把这篇文章收藏起来遇到不确定的命令随时查阅。用得多了这些命令自然会刻在肌肉记忆里。记住核心口诀先 status 看状态 → add 到暂存区 → commit 到本地 → push 到远程。本文命令均基于 Git 主流版本测试建议将 Git 更新到 2.23 版本以使用switch和restore等新命令。