一、初始化与基础操作
1. 初始化仓库
bash
git init # 当前目录新建仓库
git init <目录名> # 指定目录初始化
2. 查看状态
bash
git status # 显示工作区和暂存区状态
git status -s # 简洁版状态(A=新增, M=修改, D=删除)
二、提交代码
1. 添加文件到暂存区
bash
git add <文件名> # 添加单个文件
git add . # 添加所有修改(不含未跟踪文件)
git add -A # 添加所有修改(含未跟踪和删除文件)
git add -p # 交互式选择部分修改(按区块添加)
2. 提交到本地仓库
bash
git commit -m "提交描述" # 简单提交
git commit -am "描述" # 自动添加已跟踪文件并提交(跳过`git add`)
- 修改最后一次提交
bash
git commit --amend # 修改提交信息或内容
git commit --amend -m "新描述" # 直接替换描述
三、分支管理
1. 分支操作
bash
git branch # 查看本地分支(*为当前分支)
git branch <分支名> # 新建分支
git checkout <分支名> # 切换分支
git checkout -b <分支名> # 新建并切换分支
git branch -d <分支名> # 删除已合并的分支
git branch -D <分支名> # 强制删除未合并的分支
2. 合并与变基
bash
git merge <分支名> # 合并指定分支到当前分支
git rebase <分支名> # 变基(线性历史,慎用!)
四、撤销与回退
1. 撤销工作区修改
bash
git restore <文件名> # 撤销未暂存的修改(Git 2.23+)
git checkout -- <文件名> # 旧版Git的撤销命令
- 撤销暂存区修改
bash
git restore --staged <文件名> # 将文件移出暂存区(保留修改)
git reset HEAD <文件名> # 等效旧版命令
- 回退提交
bash
git reset --soft HEAD~1 # 撤销提交但保留修改到暂存区
git reset --mixed HEAD~1 # 撤销提交并保留修改到工作区(默认)
git reset --hard HEAD~1 # 彻底丢弃最后一次提交(慎用!)
git revert <commit-hash> # 新建提交来撤销指定提交(安全)
五、查看历史与差异
1. 提交历史
bash
git log # 完整提交历史
git log --oneline # 简洁版提交记录
git log -p # 显示提交的代码差异
git log --graph # 图形化分支历史
git log -n 3 # 仅显示最近3条提交
2. 代码对比
bash
git diff # 工作区与暂存区的差异
git diff --cached # 暂存区与最新提交的差异
git diff HEAD # 工作区与最新提交的差异
git diff <分支1> <分支2> # 对比两个分支
git diff <commit1> <commit2> # 对比两次提交
六、暂存与恢复
1. 暂存临时修改
bash
git stash # 暂存当前工作区和暂存区修改
git stash save "描述" # 暂存并添加描述
git stash list # 查看所有暂存记录
git stash pop # 恢复最近一次暂存并删除记录
git stash apply stash@{n} # 恢复指定暂存(不删除)
git stash drop stash@{n} # 删除指定暂存
七、标签管理
bash
git tag # 查看所有标签
git tag v1.0 # 创建轻量标签
git tag -a v1.0 -m "版本说明" # 创建附注标签
git push origin v1.0 # 推送标签到远程
git tag -d v1.0 # 删除本地标签
git push origin --delete v1.0 # 删除远程标签
八、.gitignore 配置
-
创建
.gitignore
文件,忽略指定文件/目录:bash# 忽略所有 .log 文件 *.log # 忽略 node_modules 目录 node_modules/ # 不忽略特定文件(例外规则) !important.log
九、高频场景示例
1. 紧急修复 bug(基于主分支)
bashgit checkout main # 切换到主分支 git pull origin main # 拉取最新代码 git checkout -b hotfix-bug # 新建修复分支 # 修复代码后... git add . git commit -m "fix: 紧急修复XX问题" git checkout main git merge hotfix-bug # 合并修复
2. 丢弃本地所有修改
bashgit reset --hard HEAD # 重置工作区和暂存区 git clean -fd # 删除未跟踪的文件和目录
十、命令速查表
场景 命令 初始化仓库 git init
提交代码 git add . && git commit -m "描述"
切换分支 git checkout <分支名>
合并分支 git merge <分支名>
撤销工作区修改 git restore <文件>
查看历史 git log --oneline --graph
暂存临时修改 git stash