git常用命令大全

    • 一、基础配置与初始化
      • [1. 查看与设置用户信息](#1. 查看与设置用户信息)
      • [2. 初始化仓库](#2. 初始化仓库)
    • 二、文件状态与暂存区操作
      • [1. 查看状态](#1. 查看状态)
      • [2. 添加文件到暂存区](#2. 添加文件到暂存区)
      • [3. 移除文件](#3. 移除文件)
    • 三、提交与历史管理
      • [1. 提交变更](#1. 提交变更)
      • [2. 查看提交历史](#2. 查看提交历史)
      • [3. 查看差异](#3. 查看差异)
    • 四、分支管理(核心!)
      • [1. 查看与创建分支](#1. 查看与创建分支)
      • [2. 切换与合并分支](#2. 切换与合并分支)
      • [3. 删除分支](#3. 删除分支)
      • [4. 重命名分支](#4. 重命名分支)
    • 五、变基(Rebase)与历史重写
      • [1. 变基操作](#1. 变基操作)
      • [2. 交互式变基(整理提交)](#2. 交互式变基(整理提交))
    • 六、远程仓库协作
      • [1. 查看与管理远程仓库](#1. 查看与管理远程仓库)
      • [2. 推送与拉取](#2. 推送与拉取)
      • [3. 获取远程更新(不自动合并)](#3. 获取远程更新(不自动合并))
    • 七、回退与撤销操作
    • 八、标签(Tag)管理
    • 九、实用技巧与高级命令
      • [1. 查看某行代码是谁修改的](#1. 查看某行代码是谁修改的)
      • [2. 临时保存工作进度](#2. 临时保存工作进度)
      • [3. 查看仓库大小与大文件](#3. 查看仓库大小与大文件)
      • [4. 清理未跟踪文件](#4. 清理未跟踪文件)
      • [5. 设置别名(提升效率)](#5. 设置别名(提升效率))

本文系统梳理了 Git 的核心命令,涵盖配置、仓库管理、分支操作、提交与回退、远程协作、日志查看、标签管理、实用技巧等八大模块,助你从入门走向熟练。


一、基础配置与初始化

1. 查看与设置用户信息

bash 复制代码
# 全局设置(推荐)
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# 查看配置
git config --list
git config user.name        # 查看某项配置

💡 首次使用 Git 时务必配置用户名和邮箱,它们将作为提交记录的作者信息。

2. 初始化仓库

bash 复制代码
# 初始化本地仓库
git init

# 克隆远程仓库
git clone <repository-url>
git clone <repository-url> <directory-name>  # 指定本地目录名

二、文件状态与暂存区操作

1. 查看状态

bash 复制代码
git status          # 查看工作区与暂存区状态
git status -s       # 简洁模式(short status)

2. 添加文件到暂存区

bash 复制代码
git add <file>              # 添加单个文件
git add .                   # 添加当前目录所有变更(不含 .gitignore 忽略的)
git add -A                  # 添加所有变更(包括删除)
git add -u                  # 仅添加已跟踪文件的修改和删除

3. 移除文件

bash 复制代码
git rm <file>               # 从工作区和暂存区删除文件
git rm --cached <file>      # 仅从暂存区移除(保留本地文件,常用于 .gitignore)

三、提交与历史管理

1. 提交变更

bash 复制代码
git commit -m "提交说明"            # 提交暂存区内容
git commit -am "提交说明"           # 自动 add 已跟踪文件并提交(不包含新文件)
git commit --amend                  # 修改最后一次提交(可改内容或注释)

2. 查看提交历史

bash 复制代码
git log                     # 完整日志
git log --oneline           # 单行简洁日志
git log --graph             # 图形化分支历史
git log --author="name"     # 按作者过滤
git log -p -2               # 显示最近2次提交的差异

3. 查看差异

bash 复制代码
git diff                    # 工作区 vs 暂存区
git diff --cached           # 暂存区 vs 最后一次提交
git diff HEAD               # 工作区 vs 最后一次提交
git diff <commit1> <commit2> # 两次提交之间的差异

四、分支管理(核心!)

1. 查看与创建分支

bash 复制代码
git branch                  # 查看本地分支(* 表示当前分支)
git branch -a               # 查看所有分支(含远程)
git branch <branch-name>    # 创建新分支(不切换)

2. 切换与合并分支

bash 复制代码
git checkout <branch-name>      # 切换分支
git switch <branch-name>        # Git 2.23+ 推荐:切换分支(更语义化)
git checkout -b <new-branch>    # 创建并切换到新分支
git switch -c <new-branch>      # 同上(新语法)

git merge <branch-name>         # 合并指定分支到当前分支(保留历史)

3. 删除分支

bash 复制代码
git branch -d <branch-name>     # 删除已合并的分支
git branch -D <branch-name>     # 强制删除(未合并也删)

4. 重命名分支

bash 复制代码
git branch -m <old-name> <new-name>   # 重命名当前分支

五、变基(Rebase)与历史重写

1. 变基操作

bash 复制代码
git rebase <target-branch>      # 将当前分支变基到目标分支
git rebase --continue           # 解决冲突后继续 rebase
git rebase --abort              # 放弃 rebase,回到操作前状态

2. 交互式变基(整理提交)

bash 复制代码
git rebase -i HEAD~3            # 整理最近3次提交
# 在编辑器中可选择:
# pick:保留提交
# squash:合并到上一个提交
# reword:修改提交信息
# drop:删除提交

六、远程仓库协作

1. 查看与管理远程仓库

bash 复制代码
git remote -v                   # 查看远程仓库地址
git remote add <name> <url>     # 添加远程仓库(如 origin)
git remote remove <name>        # 删除远程仓库

2. 推送与拉取

bash 复制代码
git push origin <branch>        # 推送本地分支到远程
git push -u origin <branch>     # 首次推送并设置上游跟踪
git push --force                # 强制推送(慎用!)
git push --force-with-lease     # 更安全的强制推送(推荐)

git pull                        # 拉取并自动合并(= fetch + merge)
git pull --rebase               # 拉取并变基(保持线性历史)

💡 建议 :配置 git config --global pull.rebase true,让 git pull 默认使用 rebase。

3. 获取远程更新(不自动合并)

bash 复制代码
git fetch origin                # 获取远程所有分支更新
git fetch origin <branch>       # 获取指定分支更新

七、回退与撤销操作

场景 命令 说明
撤销工作区修改 git checkout -- <file> 丢弃工作区变更(恢复到暂存区状态)
撤销暂存区添加 git reset HEAD <file> 将文件从暂存区移回工作区
回退到某次提交(保留修改) git reset --soft <commit> 撤销提交,但保留暂存区和工作区
回退到某次提交(保留工作区) git reset --mixed <commit> 默认行为,撤销提交和暂存区,保留工作区
彻底回退(危险!) git reset --hard <commit> 丢弃所有后续提交和修改
新建提交来撤销变更 git revert <commit> 安全回退,生成新提交(适合已推送的提交)

八、标签(Tag)管理

bash 复制代码
git tag                     # 列出所有标签
git tag -l "v1.*"           # 模糊搜索标签

git tag <tagname>           # 轻量标签(指向提交)
git tag -a <tagname> -m "说明"  # 附注标签(推荐)

git show <tagname>          # 查看标签信息

git push origin <tagname>   # 推送单个标签
git push origin --tags      # 推送所有标签

九、实用技巧与高级命令

1. 查看某行代码是谁修改的

bash 复制代码
git blame <file>

2. 临时保存工作进度

bash 复制代码
git stash                   # 保存当前工作区和暂存区
git stash list              # 查看 stash 列表
git stash pop               # 恢复最近一次 stash 并删除
git stash apply             # 恢复 stash 但保留记录

3. 查看仓库大小与大文件

bash 复制代码
git count-objects -v -H     # 查看仓库对象大小

4. 清理未跟踪文件

bash 复制代码
git clean -n                # 预览将删除的文件
git clean -f                # 删除未跟踪文件
git clean -fd               # 删除未跟踪文件和目录

5. 设置别名(提升效率)

bash 复制代码
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.lg "log --oneline --graph --all"

📚 推荐学习资源:

相关推荐
ll5776443329 小时前
使用PyTorch实现自定义损失函数以FocalLoss为例的详细教程
git
李少兄10 小时前
Git 用户名与邮箱配置指南
git
Blue啊10 小时前
code Merge(qcc)
git·gitlab
洛小豆15 小时前
Git打标签仓库看不到?她说:豆子,你又忘了加 --tags!
git·后端·github
好奇的菜鸟18 小时前
理解 Git 命令 `git reset --hard origin/pre`:版本回退的“利刃”与使用禁忌
大数据·git
春生野草18 小时前
git的使用
git
今天头发还在吗18 小时前
解决 Git 推送冲突:使用 Rebase 整合远程更改
大数据·git·elasticsearch
蓝色空白的博客20 小时前
Git代码下拉更新推送操作用法整理
git
风也温柔☆1 天前
IDEA/WebStorm 切换分支(超简单)
git·intellij-idea·webstorm·切换分支·checkout