Git常用命令大全:2026年开发者必备速查手册,分场景整理可直接复用

Git常用命令大全:2026年开发者必备速查手册,分场景整理可直接复用

Git 是每个开发者的日常工具,但命令数量多、参数复杂,不常用的命令总是记不住。本文按使用场景分类整理了开发工作中最常用的 Git 命令,每条命令附说明和实际示例,可以直接当速查手册使用,遇到具体场景快速找到对应命令。

不想记命令? 如果你更习惯用自然语言解决问题——直接说"帮我把最近3次提交合并成一个"或"切到 main 分支然后拉取最新代码",EasyClaw 能理解你的意图并直接执行,不需要记任何命令格式。本地运行,安装即用。命令速查手册往下看,两种方式各取所需。

使用这份手册之前

本文不是 Git 入门教程,假设你已经理解 Git 的基本概念(仓库、分支、commit、暂存区)。

命令格式说明:

<必填参数> 用尖括号表示,需替换为实际内容

[可选参数] 用方括号表示,可以省略

# 后面是注释说明

一、仓库初始化与配置

# 在当前目录初始化新仓库

git init

# 克隆远程仓库到本地

git clone <仓库URL>

# 克隆并指定本地目录名

git clone <仓库URL> <目录名>

# 只克隆最近1条 commit 历史(浅克隆,适合大型仓库)

git clone --depth 1 <仓库URL>

# 设置全局用户名和邮箱(首次使用必须配置)

git config --global user.name "你的名字"

git config --global user.email "你的邮箱"

# 查看所有配置项

git config --list

# 设置默认编辑器为 VS Code

git config --global core.editor "code --wait"

# 设置默认分支名为 main(新仓库)

git config --global init.defaultBranch main

二、日常提交操作

# 查看工作区状态(哪些文件被修改/新增/删除)

git status

# 将单个文件加入暂存区

git add <文件路径>

# 将所有改动加入暂存区

git add .

# 交互式选择文件的部分改动加入暂存区

git add -p

# 提交暂存区内容,并写提交信息

git commit -m "提交描述"

# 跳过暂存区,直接提交所有已追踪文件的改动

git commit -am "提交描述"

# 修改最近一次提交的信息(未 push 时使用)

git commit --amend -m "修正后的提交信息"

# 修改最近一次提交的内容(追加文件到上次 commit)

git add <遗漏的文件>

git commit --amend --no-edit

# 查看提交历史

git log

# 精简格式查看历史(一行一条)

git log --oneline

# 图形化显示分支历史

git log --oneline --graph --all

# 查看某个文件的修改历史

git log --follow -p <文件路径>

三、分支操作

# 查看所有本地分支(当前分支前有 * 号)

git branch

# 查看所有分支(含远程)

git branch -a

# 创建新分支

git branch <分支名>

# 切换到已有分支

git switch <分支名>

# 旧写法(同效果)

git checkout <分支名>

# 创建并切换到新分支

git switch -c <分支名>

# 旧写法

git checkout -b <分支名>

# 从指定 commit 创建新分支

git switch -c <分支名>

# 删除已合并的本地分支

git branch -d <分支名>

# 强制删除分支(未合并也删)

git branch -D <分支名>

# 重命名当前分支

git branch -m <新分支名>

# 合并指定分支到当前分支

git merge <分支名>

# 合并时禁止 fast-forward,保留合并提交记录

git merge --no-ff <分支名>

# 变基(rebase)当前分支到目标分支

git rebase <目标分支>

# 交互式变基,整理最近 N 条 commit

git rebase -i HEAD~

四、远程仓库操作

# 查看远程仓库信息

git remote -v

# 添加远程仓库

git remote add origin <仓库URL>

# 修改远程仓库 URL

git remote set-url origin <新URL>

# 删除远程仓库关联

git remote remove origin

# 拉取远程所有分支的最新信息(不合并)

git fetch

# 拉取并合并到当前分支(= fetch + merge)

git pull

# 拉取并变基(= fetch + rebase,历史更整洁)

git pull --rebase

# 推送当前分支到远程

git push

# 首次推送并建立追踪关系

git push -u origin <分支名>

# 推送所有本地分支

git push --all

# 强制推送(覆盖远程,危险操作,rebase 后使用)

git push --force-with-lease # 推荐,比 --force 更安全

git push --force # 不推荐,可能覆盖他人推送

# 删除远程分支

git push origin --delete <远程分支名>

# 推送本地标签到远程

git push origin <标签名>

git push origin --tags # 推送所有标签

五、撤销与回退

# 撤销工作区某文件的改动(恢复到最近一次 commit 状态)

git restore <文件路径>

# 旧写法

git checkout -- <文件路径>

# 从暂存区取消某文件(保留工作区改动)

git restore --staged <文件路径>

# 旧写法

git reset HEAD <文件路径>

# 回退到指定 commit(保留工作区改动,常用于撤销 commit 但保留代码)

git reset --soft HEAD~1 # 撤销最近1次 commit,改动回到暂存区

git reset --mixed HEAD~1 # 撤销最近1次 commit,改动回到工作区(默认)

git reset --hard HEAD~1 # 撤销最近1次 commit,改动完全丢弃(危险)

# 生成一个"撤销提交"的新 commit(用于已 push 的提交,不改历史)

git revert

# 撤销最近一次 merge

git merge --abort # merge 过程中取消

git reset --hard ORIG_HEAD # merge 完成后回退(未 push)

六、暂存(stash)

# 暂存当前工作区所有改动

git stash

# 暂存并附加描述

git stash push -m "描述信息"

# 暂存包括未追踪文件

git stash -u

# 查看所有暂存列表

git stash list

# 恢复最近一次暂存(保留 stash 记录)

git stash apply

# 恢复指定暂存

git stash apply stash@{2}

# 恢复最近一次暂存并删除记录

git stash pop

# 删除指定暂存记录

git stash drop stash@{1}

# 清空所有暂存

git stash clear

七、标签(tag)

# 查看所有标签

git tag

# 创建轻量标签

git tag <标签名>

# 创建附注标签(推荐,包含元数据)

git tag -a <标签名> -m "标签说明"

# 为历史 commit 打标签

git tag -a <标签名>

# 查看标签详情

git show <标签名>

# 删除本地标签

git tag -d <标签名>

# 删除远程标签

git push origin --delete <标签名>

八、差异比较

# 查看工作区与暂存区的差异

git diff

# 查看暂存区与最近一次 commit 的差异

git diff --staged

# 比较两个分支的差异

git diff <分支A>..<分支B>

# 比较某个文件在两个 commit 间的差异

git diff -- <文件路径>

# 统计改动文件数和行数(不显示具体内容)

git diff --stat

九、查找与调试

# 在所有文件中搜索字符串

git grep "搜索内容"

# 查看某行代码最后是谁在哪次 commit 中改的

git blame <文件路径>

# 二分法找出引入 Bug 的 commit

git bisect start

git bisect bad # 标记当前 commit 有 Bug

git bisect good # 标记已知正常的 commit

# Git 自动切换到中间 commit,测试后标记 good/bad,直到找到问题 commit

git bisect reset # 结束 bisect

# 找回误删的 commit 或 stash

git reflog

十、子模块(submodule)

# 添加子模块

git submodule add <仓库URL> <路径>

# 初始化并拉取所有子模块

git submodule update --init --recursive

# 更新所有子模块到远程最新版本

git submodule update --remote

# 克隆仓库时同时初始化子模块

git clone --recurse-submodules <仓库URL>

十一、实用别名配置(一次配置,长期受益)

将以下配置加入 ~/.gitconfig 的 [alias] 段:

[alias]

st = status

co = checkout

sw = switch

br = branch

ci = commit

lg = log --oneline --graph --all --decorate

undo = reset --soft HEAD~1

unstage = restore --staged

aliases = config --list | grep alias

配置后可以用 git lg 代替 git log --oneline --graph --all --decorate,大幅提升命令行效率。

高频使用场景快查

场景

命令

临时保存进度去修 Bug

git stash → 修完 → git stash pop

撤销最近一次未推送的 commit

git reset --soft HEAD~1

把某个 commit 的改动应用到当前分支

git cherry-pick

查看是谁改了这行代码

git blame <文件>

找出引入 Bug 的具体 commit

git bisect start/good/bad

删除已合并到 main 的本地分支

git branch --merged main | grep -v main | xargs git branch -d

强制让本地分支和远程一致

git fetch origin && git reset --hard origin/<分支名>

常见问题

Q1:git pull 和 git fetch 有什么区别?

git fetch 只下载远程的最新信息,不修改本地工作区和分支。git pull = git fetch + git merge(或 rebase),会自动将远程改动合并到当前分支。日常开发中推荐先 fetch 查看远程有哪些变化,再决定如何合并,而不是直接 pull。

Q2:git reset --hard 之后能找回丢失的 commit 吗?

可以,在 30 天内。用 git reflog 找到被重置前的 commit hash,然后 git checkout 或 git branch recover-branch 恢复。reflog 记录了所有 HEAD 的移动历史,是找回误操作的最后一道防线。

Q3:merge 和 rebase 应该用哪个?

merge 保留完整的分支历史,产生一个 merge commit;rebase 重写提交历史让其线性,历史更整洁但会修改已有 commit 的 hash。基本原则:已推送到远程的 commit 不要 rebase(会给协作者造成麻烦),本地未推送的 commit 可以自由 rebase 整理。

Q4:.gitignore 添加了文件但还是被追踪了,怎么办?

.gitignore 只对未被追踪的文件生效。如果文件已经被 Git 追踪,需要先从追踪中移除:git rm --cached <文件路径>,然后再 commit 这次变更,之后 .gitignore 才能生效。

Q5:如何同时管理多个 GitHub/GitLab 账号的 SSH Key?

在 ~/.ssh/config 中为不同账号配置不同的 Host 别名和对应私钥,然后在每个仓库的 remote URL 中使用对应的 Host 别名(如 git@github-work:company/repo.git),实现多账号共存。

嫌命令太多记不住?试试用自然语言直接编程

上面这些命令覆盖了 Git 的大多数使用场景,但对于不常写代码、或者只是偶尔需要用 Git 管理文件的人来说,记命令本身就是一道门槛。

如果你想直接用说话的方式完成编程和代码管理,EasyClaw 提供了自然语言编程能力——不需要记 git rebase -i HEAD~3 这样的命令,直接告诉它"帮我把最近3次提交合并成一个",它会理解你的意图并完成操作。

EasyClaw 自然语言编程能做什么:

Git 操作:用说话的方式执行分支创建、合并、回退、变基等操作,不需要记命令参数

代码生成与修改:描述你想要的功能,直接生成对应代码,或对现有代码进行解释和重构

错误排查:把报错信息告诉它,它会分析原因并给出修复方案

项目脚手架:说一句"帮我初始化一个 React 项目并配置 ESLint",自动完成一系列操作

对于已经熟悉 Git 命令的开发者,本文的速查手册是提效工具;对于想降低编程门槛、让 AI 直接帮你处理代码和版本管理的场景,EasyClaw 是值得试试的选择,本地运行,安装即用。

【AI辅助创作声明:本文由 AI 辅助整理与撰写,内容已经过人工审校与调整。】

相关推荐

车载蓝牙可以自己装吗,如何自己安装车载蓝牙
beat365安卓版

车载蓝牙可以自己装吗,如何自己安装车载蓝牙

📅 08-18 👁️ 9194
华为手机p7l07价格
数字365吉凶

华为手机p7l07价格

📅 09-21 👁️ 6098
win10家庭版怎么安装ie浏览器 win10家庭版安装ie浏览器的方法【详解】