Git 全套常用命令手册(含日常开发示例)
本文整合 Git 基础命令、分支管理、远程操作、回退重置及日常开发常用操作
目录
基础操作
| 命令 | 用途 | 示例 | 备注 |
|---|---|---|---|
git init |
初始化本地仓库 | git init |
当前目录生成 .git 文件夹 |
git clone |
克隆远程仓库 | git clone <url> git clone -b <分支> <url> <目录> |
克隆指定分支到指定目录 |
git add |
添加文件到暂存区 | git add <文件> git add -A |
可多次执行,只有暂存区内容会被提交 |
git status |
查看工作区和暂存区状态 | git status |
未跟踪文件、修改文件等信息 |
git diff |
查看文件改动 | git diff git diff --cached |
--cached 比较暂存区和上次提交 |
git commit |
提交到本地仓库 | git commit -m "描述" git commit -a -m "描述" |
-a 提交修改和删除的文件,不包含新文件 |
git checkout |
切换分支/版本 | git checkout <分支> git checkout -b <新分支> |
切换分支会重写工作区内容 |
git mv |
重命名文件或目录 | git mv old.txt new.txt |
等同于 mv + git add |
git rm |
删除文件或目录 | git rm <文件> git rm -r <目录> git rm --cached <文件> |
--cached 保留本地文件,只删除跟踪 |
分支与合并
| 命令 | 用途 | 示例 | 备注 |
|---|---|---|---|
git branch |
分支管理 | git branch git branch -v |
显示本地分支和最后一次提交 |
git branch <新分支> |
创建分支 | git branch feature1 |
基于当前 HEAD 创建 |
git branch -m old new |
重命名分支 | git branch -m master main |
不加 old 为当前分支 |
git branch -d <分支> |
删除分支 | git branch -d feature1 |
强制删除用 -D |
git checkout <分支> |
切换分支 | git checkout develop |
会更新 HEAD |
git checkout -b <新分支> |
创建并切换分支 | git checkout -b feature2 |
合并 branch + checkout |
git merge <分支> |
合并分支 | git merge feature2 |
自动生成提交 |
git merge --no-commit <分支> |
合并但不提交 | git merge --no-commit feature2 |
可手动检查修改 |
git rebase <分支> |
基于另一分支变基 | git rebase develop |
整理提交历史 |
远程仓库
| 命令 | 用途 | 示例 | 备注 |
|---|---|---|---|
git remote |
查看远程仓库 | git remote git remote -v |
显示别名和 URL |
git remote add <别名> <url> |
添加远程仓库 | git remote add origin <url> |
常用 origin |
git remote rename <原> <新> |
修改远程仓库别名 | git remote rename origin upstream |
|
git remote remove <别名> |
删除远程仓库 | git remote remove origin |
|
git fetch |
拉取远程更新 | git fetch git fetch origin master |
不会修改本地分支 |
git pull |
拉取并合并 | git pull |
等同于 fetch + merge |
git push |
推送本地提交 | git push origin master |
指定远程分支 |
git push --delete <远程分支> |
删除远程分支 | git push origin --delete feature1 |
提交与撤销
| 命令 | 用途 | 示例 | 备注 |
|---|---|---|---|
git reset |
撤销提交 | git reset <commit> --soft/--mixed/--hard |
soft 保留修改到暂存区,mixed 保留工作区,hard 完全回退 |
git revert |
生成新提交撤销 | git revert <commit> |
保留历史,不破坏提交链 |
git commit --amend |
修改上次提交 | git commit --amend -m "新描述" |
适用于未推送到远程的提交 |
标签管理
| 命令 | 用途 | 示例 | 备注 |
|---|---|---|---|
git tag |
查看标签 | git tag |
|
git tag <name> [commit] |
创建轻量标签 | git tag v1.0 |
可指定 commit |
git tag -a <name> -m "desc" [commit] |
创建附注标签 | git tag -a v1.1 -m "release" |
附带描述信息 |
git show <tag> |
查看标签信息 | git show v1.0 |
包含提交信息 |
git tag -d <tag> |
删除标签 | git tag -d v1.0 |
|
git push <remote> <tag> |
推送标签 | git push origin v1.1 |
|
git push <remote> --tags |
推送所有标签 | git push origin --tags |
配置与状态
| 命令 | 用途 | 示例 | 备注 |
|---|---|---|---|
git config |
配置 Git | git config --global user.name "name" |
可全局、仓库级、系统级 |
git config -l |
查看配置 | git config -l |
显示当前生效配置 |
git config --global color.ui true |
彩色显示 | 提高可读性 | |
git config --global credential.helper store |
长期保存密码 | 默认保存在本地明文 | |
git log |
查看提交记录 | git log git log -5 |
可限制数量 |
日常开发常用命令
| 场景 | 命令 | 说明 |
|---|---|---|
| 暂存当前修改 | git add . |
添加所有修改到暂存区 |
| 查看状态 | git status |
当前分支、修改、暂存文件 |
| 查看差异 | git diff |
查看未暂存修改 |
| 提交修改 | git commit -m "描述" |
提交暂存区内容 |
| 回退工作区 | git checkout <file> |
撤销未提交修改 |
| 暂存改动存起来 | git stash |
临时存储修改,恢复干净工作区 |
| 恢复 stash | git stash pop |
恢复最近一次 stash |
| 删除 stash | git stash drop |
删除指定 stash |
| 解决冲突 | git merge <branch> / git rebase |
手动编辑冲突文件,git add 后 git commit |
| 查看日志 | git log --oneline --graph --all |
可视化提交历史 |
回退重置示例(上一次提交)
| 操作类型 | 命令 | 工作区变化 | 暂存区变化 | 提交记录变化 |
|---|---|---|---|---|
| 撤销未提交修改 | git checkout <file> |
恢复 | 无影响 | 无影响 |
| 撤销暂存区修改 | git reset <file> |
保留 | 清空指定文件 | 无影响 |
| 撤销上一次提交 (保留修改) | git reset --soft HEAD~1 |
保留 | 保留 | 删除上一次提交 |
| 撤销上一次提交 (保留工作区) | git reset --mixed HEAD~1 |
保留 | 清空 | 删除上一次提交 |
| 撤销上一次提交 (完全回退) | git reset --hard HEAD~1 |
清空 | 清空 | 删除上一次提交 |
| 撤销上一次提交 (保留历史) | git revert HEAD |
无影响 | 无影响 | 新增撤销提交 |