目录
一、配置相关
git config --global user.name "Your Name" # 设置全局用户名 git config --global user.email "email@example.com" # 设置全局邮箱 git config --list # 查看所有配置 git config -e
二、仓库创建与克隆
git init # 在当前目录初始化新仓库 git clone <url> # 克隆远程仓库到本地 git clone --depth 1 <url> # 浅克隆(只拉取最新一次提交)
三、基本快照操作
git status # 查看工作区和暂存区状态 git add <file> # 将文件添加到暂存区 git add . # 添加所有改动(包括新增、修改、删除) git add -A # 同上,更彻底 git rm <file> # 删除文件并记录到暂存区 git mv <old> <new> # 移动/重命名文件 git diff # 查看工作区与暂存区的差异 git diff --staged # 查看暂存区与上一次提交的差异 git commit -m "message" # 提交暂存区内容并附上说明 git commit -am "message" # 跳过 add,直接提交所有已跟踪文件的改动
四、查看历史
git log # 查看提交历史(详细) git log --oneline # 简洁版,每行一个提交 git log --graph --all # 图形化显示所有分支历史 git reflog # 查看所有引用的移动历史(可找回丢失的提交) git show <commit> # 显示某次提交的详细信息 git blame <file> # 查看文件每一行是谁修改的
五、撤销与恢复
git reset HEAD <file> # 将文件从暂存区撤回到工作区(unstage) git checkout -- <file> # 丢弃工作区的修改(危险,不可恢复) git restore <file> # 新版:丢弃工作区修改 git restore --staged <file> # 新版:从暂存区撤回到工作区 git reset --soft HEAD~1 # 撤销最后一次提交,改动保留在暂存区 git reset --mixed HEAD~1 # 撤销最后一次提交,改动保留在工作区(默认) git reset --hard HEAD~1 # 彻底回退到上一次提交,丢弃所有改动(危险) git revert <commit> # 生成一个新提交来反向操作指定的提交(安全)
六、分支管理
git branch # 列出本地分支(当前分支前有 *) git branch -r # 列出远程分支 git branch -a # 列出所有分支(本地+远程) git branch <name> # 创建新分支(但不切换) git checkout <name> # 切换到指定分支 git switch <name> # 新版切换分支(推荐) git checkout -b <name> # 创建并切换到新分支 git switch -c <name> # 新版创建并切换 git merge <branch> # 将指定分支合并到当前分支 git merge --no-ff <branch> # 禁用快进合并(保留分支历史) git branch -d <name> # 删除本地分支(已合并) git branch -D <name> # 强制删除未合并的分支 git push origin --delete <name> # 删除远程分支
七、远程仓库操作
git remote -v # 查看远程仓库地址 git remote add origin <url> # 添加远程仓库(别名 origin) git remote rm <name> # 删除远程仓库别名 git fetch # 拉取远程最新信息但不合并 git pull # 拉取并合并(等价于 fetch + merge) git pull --rebase # 拉取并变基(保持线性历史) git push origin <branch> # 推送本地分支到远程 git push -u origin <branch> # 推送并建立上游跟踪关系 git push --force # 强制推送(覆盖远程,慎用) git push --force-with-lease # 更安全的强制推送
八、标签管理
git tag # 列出所有标签 git tag <tagname> # 创建轻量标签 git tag -a <tagname> -m "message" # 创建附注标签 git show <tagname> # 查看标签信息 git push origin <tagname> # 推送单个标签到远程 git push origin --tags # 推送所有标签 git tag -d <tagname> # 删除本地标签 git push origin --delete <tagname> # 删除远程标签
九、储藏(临时保存工作现场)
git stash # 暂存当前未提交的修改(包括已跟踪文件) git stash save "message" # 带说明的暂存 git stash list # 查看所有储藏记录 git stash apply # 应用最近的储藏(保留储藏记录) git stash pop # 应用并删除最近的储藏 git stash drop # 删除指定储藏 git stash clear # 清空所有储藏
十、变基(整理提交历史)
git rebase <branch> # 将当前分支的提交变基到目标分支 git rebase -i HEAD~n # 交互式变基最近 n 次提交(可合并、修改、删除提交) git rebase --continue # 解决冲突后继续变基 git rebase --abort # 放弃变基操作
十一、高级/实用技巧
git cherry-pick <commit> # 将其他分支的某个提交应用到当前分支 git bisect start # 开始二分查找定位引入 bug 的提交 git grep "keyword" # 在代码库中搜索关键字 git shortlog -sn # 按提交数量排序的作者列表 git archive --format=zip HEAD > code.zip # 导出当前分支为 zip 包
十二、别名(简化常用命令)
git config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.st status git config --global alias.lg "log --oneline --graph --all"
提示 :实际使用时建议先
git status确认状态,避免误操作。危险命令(如reset --hard、push --force)前请确认。