Git命令速查手册V1

一、基础配置

  1. 设置用户信息

    git config --global user.name "Your Name" # 配置全局用户名(提交代码时显示的作者)

    git config --global user.email "your@email.com" # 配置全局邮箱(需与远程仓库账号绑定)

    git config --global core.editor "code --wait" # 配置默认编辑器(示例为 VS Code,提交时调用)

  2. 查看与修改配置

    git config --list # 列出当前所有配置项(含全局 / 本地仓库配置)

    git config user.name # 单独查看用户名配置

    git config --global --unset user.email # 删除全局邮箱配置(需重新设置时使用)

二、仓库操作

  1. 初始化与关联仓库

    git init # 在当前目录创建新 Git 仓库(生成隐藏的.git 文件夹)

    git remote add origin <仓库URL> # 关联本地仓库到远程仓库(首次推送前执行)

    git remote -v # 查看已关联的远程仓库地址(显示 fetch/push 双向地址)

  2. 克隆远程仓库

    git clone <仓库URL> # 将远程仓库完整复制到本地(含所有分支历史)

    git clone <仓库URL> --depth 1 # 克隆浅仓库(仅拉取最新 1 次提交,节省时间)

    git clone <仓库URL> <自定义目录名> # 克隆到指定本地目录(避免目录名与仓库名一致)

  3. 状态与日志查看

    git status # 查看工作区 / 暂存区文件状态(红色 = 未暂存,绿色 = 已暂存)

    git log # 显示详细提交历史(含作者、时间、commit id)

    git log --oneline # 简洁格式显示历史(仅显示 commit id 前 7 位 + 提交信息)

    git log --graph --oneline # 图形化显示分支合并历史(直观查看分支走向)

    git reflog # 查看所有操作记录(含已删除提交、reset 操作,用于找回误删内容)

三、文件操作

  1. 暂存与提交更改

    git add <文件名> # 将指定文件从工作区添加到暂存区

    git add . # 添加当前目录所有修改(新增 / 修改 / 删除文件)到暂存区

    git add -p <文件名> # 交互式添加(逐段选择文件修改内容,避免冗余提交)

    git commit -m "标签: 提交信息" # 提交暂存区到本地仓库(标签参考:feat/fix/docs)

    git commit -am "标签: 提交信息" # 直接提交已跟踪文件(跳过 git add,未跟踪文件无效)

    git commit --amend # 修改最近一次提交信息(未推送到远程时使用)

  2. 撤销与恢复修改

    git checkout -- <文件名> # 丢弃工作区对指定文件的修改(恢复到最近提交 / 暂存状态)

    git reset HEAD <文件名> # 将暂存区的文件撤回至工作区(取消 git add 操作)

    git restore <文件名> # (新版 Git)替代 git checkout --,丢弃工作区修改

    git restore --staged <文件名> # (新版 Git)替代 git reset HEAD,将暂存区文件撤回

    git rm <文件名> # 删除文件并添加到暂存区(等价于手动删除后 git add)

    git rm --cached <文件名> # 从暂存区移除文件,但保留本地文件(停止跟踪该文件)

四、分支管理

  1. 分支基础操作

    git branch # 显示所有本地分支(当前分支前带 *)

    git branch -a # 显示所有分支(本地 + 远程,远程分支格式:remotes/origin/xxx)

    git branch -vv # 查看分支与远程分支的跟踪关系(如 main -> origin/main)

    git branch <新分支名> # 创建新分支(基于当前分支最新提交,不切换)

    git checkout -b <新分支名> # 创建新分支并立即切换(旧版命令)

    git switch -c <新分支名> # 创建新分支并立即切换(新版 Git 推荐,更直观)

    git checkout <分支名> # 切换到已存在的本地分支(旧版命令)

    git switch <分支名> # 切换到已存在的本地分支(新版 Git 推荐)

  2. 分支删除与合并

    git branch -d <分支名> # 删除本地已合并的分支(未合并会提示失败,防止误删)

    git branch -D <分支名> # 强制删除本地分支(无论是否合并,谨慎使用)

    git merge <分支名> # 将指定分支合并到当前分支(如合并 dev 到 main)

    git merge --abort # 合并冲突时,放弃当前合并操作(回到合并前状态)

    git rebase <分支名> # 变基操作(将当前分支提交 “嫁接” 到目标分支,使历史更线性)

    git rebase --abort # 变基冲突时,放弃当前变基操作

  3. 远程分支同步

    git fetch # 拉取远程仓库所有分支更新(不合并到本地,仅同步信息)

    git fetch origin <分支名> # 拉取远程指定分支的更新(节省时间)

    git pull # 拉取远程跟踪分支更新并合并(等价于 git fetch + git merge)

    git pull origin <远程分支>:<本地分支> # 拉取远程分支并合并到指定本地分支

    git push -u origin <分支名> # 推送本地分支到远程并建立跟踪(首次推送新分支用)

    git push # 推送本地当前分支到远程跟踪分支(已建立跟踪后使用)

    git push origin --delete <分支名> # 删除远程分支(需先确保本地分支已处理)

五、高级操作

  1. 版本回退

    git reset --soft HEAD~1 # 撤销最近 1 次提交(保留工作区 / 暂存区修改,仅删提交记录)

    git reset --mixed HEAD~1 # 撤销最近 1 次提交(保留工作区,删除暂存区,默认模式)

    git reset --hard HEAD~1 # 彻底撤销最近 1 次提交(删除工作区 / 暂存区修改,谨慎!)

    git reset --hard <commit-id> # 回滚到指定 commit(需先通过 git log 获取 commit id)

    git revert <commit-id> # 创建新提交撤销指定提交(已推送到远程时使用,不破坏历史)

  2. 标签管理(版本标记)

    git tag # 列出所有本地标签(常用于标记发布版本,如 v1.0.0)

    git tag -a <标签名> -m "描述" # 创建带注释的标签(含版本说明,推荐)

    git tag <标签名> # 创建轻量标签(仅记录 commit id,无额外信息)

    git tag -d <标签名> # 删除本地标签

    git push origin <标签名> # 推送指定标签到远程仓库

    git push origin --tags # 推送所有本地标签到远程仓库

    git push origin --delete <标签名> # 删除远程标签

  3. 临时暂存(工作区保存)

    git stash # 暂存当前工作区未提交的修改(临时切换分支时使用)

    git stash list # 查看所有暂存的 stash 记录(按时间排序,stash@{0} 为最新)

    git stash pop # 恢复最近 1 次 stash 的内容,并删除该 stash 记录

    git stash drop <stash-id> # 删除指定 stash 记录(如 git stash drop stash@{1})

六、冲突解决

  1. 差异对比

    git diff # 显示工作区与暂存区的文件差异(未 git add 的修改)

    git diff --staged # 显示暂存区与最新提交的文件差异(已 git add 未 commit 的修改)

    git diff <分支1> <分支2> # 比较两个分支的所有文件差异

    git diff <commit-id1> <commit-id2> # 比较两个 commit 之间的差异

  2. 冲突处理工具

    git mergetool # 启动外部合并工具(如 VS Code、Beyond Compare)解决冲突

    git cherry-pick <commit-id> # 将指定 commit “复制” 到当前分支(跨分支复用单个提交)

    git checkout --theirs <文件名> # 冲突时,选择远程分支的文件版本

    git checkout --ours <文件名> # 冲突时,选择本地分支的文件版本

使用提示

  1. 分支命名建议:main(主分支)、dev(开发分支)、feature/xxx(功能分支)、hotfix/xxx(紧急修复分支)
  2. 提交信息规范:按 “标签:描述” 格式(如 feat: 新增登录功能、fix: 修复支付 bug),可通过 git hook 强制校验
  3. 危险操作预警:git reset --hard、git checkout -- <文件> 会删除本地修改,执行前建议用 git status 确认状态
  4. 帮助查询:任何命令后加 --help(如 git merge --help)可查看官方详细文档
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容