Git命令使用教程
2325 字
12 分钟
Git命令使用教程
- 1Git命令使用教程本文
目录
一、基础配置
# 设置全局用户名git config --global user.name "你的名字"
# 设置全局邮箱git config --global user.email "you@example.com"
# 查看当前配置git config --list
# 查看某个配置项git config user.name
# 设置默认编辑器git config --global core.editor "vim"
# 设置合并工具git config --global merge.tool "vimdiff"
# 显示颜色git config --global color.ui auto
# 设置默认分支名为 main(新版本 Git 推荐)git config --global init.defaultBranch main二、创建仓库
# 在当前目录初始化一个新的 Git 仓库git init
# 克隆远程仓库git clone <仓库地址>
# 克隆指定分支git clone -b <分支名> <仓库地址>
# 克隆到指定目录git clone <仓库地址> <目录名>
# 克隆深度为 1(只拉取最新提交,节省空间)git clone --depth 1 <仓库地址>三、提交与修改
3.1 暂存文件
# 添加指定文件到暂存区git add <文件名>
# 添加所有修改过的文件git add .
# 添加所有已跟踪文件的修改git add -u
# 交互式添加git add -p
# 强制添加被忽略的文件git add -f <文件名>3.2 提交更改
# 提交已暂存的文件git commit -m "提交信息"
# 提交并同时添加所有修改git commit -am "提交信息"
# 修改最后一次提交的提交信息git commit --amend -m "新的提交信息"
# 把暂存区中漏掉的文件补进最后一次提交git add <漏掉的文件>git commit --amend --no-edit⚠️ 注意:已经推送的提交慎用
--amend,会导致远程历史不一致。
四、查看状态与历史
# 查看工作区状态git status
# 简洁版状态git status -s
# 查看提交历史(一行显示)git log --oneline
# 查看历史并显示图形化分支结构git log --oneline --graph --all
# 查看最近 N 条提交git log -n 5
# 查看某个文件的修改历史git log -p <文件名>
# 查看每次提交变更的文件列表git log --stat
# 查看未暂存的修改git diff
# 查看已暂存的修改git diff --cached
# 查看工作区与最新提交的差异git diff HEAD
# 查看某个文件的完整提交历史git blame <文件名>五、分支管理
# 查看所有本地分支git branch
# 查看所有分支(含远程)git branch -a
# 查看远程分支git branch -r
# 创建新分支git branch <分支名>
# 创建并切换到新分支git checkout -b <分支名>
# 简写方式(Git 2.23+)git switch -c <分支名>
# 切换到指定分支git checkout <分支名>
# 简写方式git switch <分支名>
# 删除本地分支git branch -d <分支名>
# 强制删除未合并的分支git branch -D <分支名>
# 重命名当前分支git branch -m <新分支名>
# 查看分支间的提交差异git log <分支A>..<分支B> --oneline六、远程仓库操作
# 查看远程仓库git remote -v
# 添加远程仓库git remote add origin <仓库地址>
# 修改远程仓库地址git remote set-url origin <新地址>
# 删除远程仓库git remote remove origin
# 拉取远程更新并合并git pull origin <分支名>
# 拉取但不合并(只下载)git fetch origin
# 首次推送并建立跟踪git push -u origin <分支名>
# 推送到远程git push origin <分支名>
# 推送所有分支git push --all origin
# 推送标签git push origin --tags
# 删除远程分支git push origin --delete <分支名>
# 设置当前分支跟踪远程分支git branch --set-upstream-to=origin/<分支名>💡
git pull=git fetch+git merge。
七、合并与变基
7.1 合并(merge)
# 切换到目标分支后,把指定分支合并进来git merge <要合并的分支>
# 创建合并提交(保留分支历史)git merge --no-ff <分支名>
# 阻止自动合并提交git merge --no-commit <分支名>7.2 变基(rebase)
# 把当前分支的提交变基到目标分支上git rebase <目标分支>
# 把当前分支变基到远程最新git pull --rebase
# 交互式变基,整理最近的 N 个提交git rebase -i HEAD~3
# 变基常用操作(交互界面中的命令)# pick 保留提交# reword 保留并修改提交信息# edit 保留并暂停以便修改# squash 合并到上一个提交# drop 删除提交⚠️ 不要对已经推送并被别人使用的公共分支执行
rebase。
7.3 解决冲突
# 冲突后查看冲突文件git status
# 使用工具查看冲突git diff
# 编辑文件手动解决后git add <冲突文件>git commit # merge 时git rebase --continue # rebase 时
# 放弃这次合并git merge --abort
# 放弃这次变基git rebase --abort八、撤销与回退
# 撤销工作区中某文件的修改(危险,会丢失修改)git checkout -- <文件名>
# 简写(Git 2.23+)git restore <文件名>
# 把文件从暂存区撤回工作区git reset HEAD <文件名>
# 简写git restore --staged <文件名>
# 撤销上一次提交,但保留修改在工作区git reset --soft HEAD~1
# 撤销上一次提交,并撤销暂存(保留工作区修改)git reset --mixed HEAD~1
# 撤销上一次提交,并丢弃所有修改(危险)git reset --hard HEAD~1
# 回退到指定版本git reset --hard <提交哈希>
# 生成一个撤销某次提交的提交(推荐用于已推送的历史)git revert <提交哈希>
# 查看 HEAD 移动记录(救命用)git reflog撤销方式对比
| 场景 | 推荐命令 | 说明 |
|---|---|---|
| 修改还没暂存 | git restore <文件> | 丢弃工作区修改 |
| 已暂存还没提交 | git restore --staged <文件> | 退出暂存区 |
| 已提交,还没推送 | git reset --soft HEAD~1 | 撤回提交保留修改 |
| 已提交,已推送 | git revert <哈希> | 生成反向提交,历史安全 |
九、标签管理
# 查看所有标签git tag
# 创建轻量标签git tag <标签名>
# 创建附注标签(推荐)git tag -a v1.0 -m "版本 1.0 发布"
# 给指定提交打标签git tag -a v1.0 <提交哈希> -m "版本 1.0"
# 查看标签详情git show v1.0
# 推送指定标签到远程git push origin v1.0
# 推送所有标签git push origin --tags
# 删除本地标签git tag -d v1.0
# 删除远程标签git push origin --delete v1.0
# 检出标签(进入分离头指针状态)git checkout v1.0十、贮藏与清理
# 贮藏当前修改git stash
# 贮藏并携带说明git stash save "修复中的中间状态"
# 查看贮藏列表git stash list
# 恢复最近一次贮藏(不删除记录)git stash apply
# 恢复最近一次贮藏(同时删除记录)git stash pop
# 恢复指定贮藏git stash apply stash@{2}
# 删除最近一次贮藏git stash drop
# 清空所有贮藏git stash clear
# 展示某次贮藏的具体修改git stash show -p stash@{0}
# 删除未被跟踪的文件(先预览)git clean -n
# 确认删除未被跟踪的文件(危险)git clean -f十一、常见工作流
11.1 日常开发流程
git pull # 1. 拉取最新代码git checkout -b feature/login # 2. 创建功能分支git add . && git commit -m "feat: 登录功能" # 3. 提交修改git push -u origin feature/login # 4. 推送分支# 5. 在远程平台(GitHub/GitLab)发起 Pull Request11.2 提交信息规范(Conventional Commits)
feat: 新功能fix: 修复 bugdocs: 文档修改style: 格式调整(不影响代码逻辑)refactor: 重构perf: 性能优化test: 测试相关chore: 构建/工具变动11.3 .gitignore 常用规则
# 忽略所有 .log 文件*.log
# 忽略某个目录node_modules/dist/
# 但保留其中某个文件!dist/index.html
# 忽略根目录下的配置文件/config.env十二、常见场景速查
12.1 代码写错了,想回到上次提交
git restore .12.2 提交信息写错了
git commit --amend -m "正确的提交信息"12.3 刚才 commit 错分支了
git branch <正确分支名> # 在正确分支创建指针git checkout <正确分支名>git reset --hard HEAD~1 # 回到原分支撤销12.4 远程代码被改了,本地推送失败
git pull --rebase origin maingit push origin main12.5 想把多次提交压缩成一个
git rebase -i HEAD~3# 把后面的 pick 改为 squash,保存退出12.6 误删了分支,如何找回
git reflog # 找到分支指向的提交哈希git branch <分支名> <提交哈希> # 重建分支12.7 不小心在 main 上提交了
git branch feature/backup # 1. 保存当前工作到新分支git reset --hard origin/main # 2. 恢复 main 到远程状态git checkout feature/backup # 3. 切回备份分支继续开发附录:名词速记
| 名词 | 说明 |
|---|---|
| 工作区(Working Directory) | 你正在编辑的目录 |
| 暂存区(Staging Area / Index) | 提交前的准备区域 |
| 仓库(Repository) | 保存历史提交的地方 |
| HEAD | 当前所在位置的指针 |
| origin | 默认远程仓库名 |
文档整理日期:2026-09-24
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章智能推荐
1
Firefly 一款清新美观的 Astro 博客主题模板
文章示例Firefly 是一款基于 Astro 框架和 Fuwari 模板开发的清新美观且现代化个人博客主题模板,专为技术爱好者和内容创作者设计。该主题融合了现代 Web 技术栈,提供了丰富的功能模块和高度可定制的界面,让您能够轻松打造出专业且美观的个人博客网站。
2
空间解析几何与向量代数考点速查
高等数学专升本高数速查表:向量运算(模长、数量积、向量积、混合积)、平面与直线方程、位置关系判定、夹角与距离公式、球面方程及高频题型归纳。
3
偶函数和奇函数
高等数学偶函数和奇函数概念
4
极限等价代换公式
高等数学极限等价代换公式表
5
Firefly 代码块示例
文章示例在Firefly中使用表达性代码的代码块在 Markdown 中的外观。
随机文章随机推荐















