Git常用命令大全及使用指南

这里为你整理了一份非常全面的 Git 常用命令大全,从入门到进阶,涵盖了日常开发的绝大多数场景。命令都附有简洁的说明,方便你快速查阅和使用。

Git 命令分类速览

  1. 仓库初始化与配置
  2. 日常基本操作
  3. 分支管理
  4. 查看状态与历史
  5. 撤销与回退
  6. 远程仓库协作
  7. 标签管理
  8. 高级技巧

1. 仓库初始化与配置

命令 说明
git init 在当前目录初始化一个新的 Git 仓库
git clone <url> 克隆一个远程仓库到本地
git config --global user.name "你的名字" (重要) 设置全局用户名
git config --global user.email "你的邮箱" (重要) 设置全局邮箱地址
git config --list 查看当前所有 Git 配置

2. 日常基本操作

命令 说明
git status 查看工作区和暂存区的状态(非常常用)
git add <文件名> 将指定文件的修改添加到暂存区
git add .git add -A 将所有新增、修改、删除的文件变更都添加到暂存区
git commit -m "提交信息" 将暂存区的内容提交到本地仓库,并附上提交说明
git commit -am "提交信息" 相当于 git add . + git commit -m仅对已跟踪的文件有效
git diff 查看工作区暂存区的差异
git diff --staged 查看暂存区本地仓库最新版本的差异
git restore <文件名> (Git 2.23+) 撤销工作区的修改,恢复到暂存区或仓库的版本
git restore --staged <文件名> (Git 2.23+) 将文件从暂存区撤出,但保留工作区的修改

注意 :在老版本 Git 中,撤销修改常用 git checkout -- <文件名>git reset HEAD <文件名>,新版本推荐使用 git restore


3. 分支管理

命令 说明
git branch 查看所有本地分支(当前分支前有 * 号)
git branch -r 查看所有远程分支
git branch -a 查看所有本地和远程分支
git branch <分支名> 创建一个新分支
git checkout <分支名> 切换到指定分支
git switch <分支名> (Git 2.23+) 专门用于切换分支的命令,更语义化
git checkout -b <分支名> 创建并切换到新分支(经典组合技)
git switch -c <分支名> (Git 2.23+) 创建并切换到新分支
git merge <分支名> 将指定分支合并到当前分支
git branch -d <分支名> 删除一个已合并的分支
git branch -D <分支名> 强制删除一个分支(即使它未合并)

4. 查看状态与历史

命令 说明
git log 查看提交历史
git log --oneline 以简洁的单行模式查看历史
git log --graph 以图形化方式查看分支合并历史
git show <commit_id> 查看某一次提交的具体内容变更
git status 再次强调,查看当前工作区状态的首选命令

5. 撤销与回退

命令 说明 风险
git commit --amend 修改最新一次提交的提交信息或追加文件变更 仅限本地未推送的提交
git reset --soft <commit_id> 回退到某个版本,保留工作区和暂存区的内容
git reset --mixed <commit_id> (默认) 回退到某个版本,保留工作区,清空暂存区
git reset --hard <commit_id> (危险) 彻底回退到某个版本,工作区和暂存区都重置
git revert <commit_id> 创建一个新的提交来"撤销"某次提交的更改。推荐用于已推送的提交

黄金法则 :对已经推送到远程仓库的提交,尽量使用 git revert;对仅本地的提交,可以使用 git reset


6. 远程仓库协作

命令 说明
git remote -v 查看远程仓库地址(verbose)
git remote add <remote_name> <url> 添加一个新的远程仓库,通常默认名为 origin
git fetch <remote_name> 从远程仓库获取最新信息到本地,但不自动合并
git pull <remote_name> <分支名> 相当于 git fetch + git merge,拉取并合并到当前分支
git pull --rebase <remote_name> <分支名> 拉取并使用变基方式合并,可以使历史线更清晰
git push <remote_name> <分支名> 将本地分支推送到远程仓库
git push -u <remote_name> <分支名> (重要) 首次推送时,建立本地分支与远程分支的跟踪关系
git push 建立跟踪关系后,简化推送命令
git branch --set-upstream-to=<remote_name>/<分支名> 手动建立本地分支与远程分支的跟踪关系

7. 标签管理

命令 说明
git tag 查看所有标签
git tag <标签名> 在当前提交上创建一个轻量标签
git tag -a <标签名> -m "备注信息" 创建一个带备注的附注标签
git push <remote_name> <标签名> 推送一个标签到远程仓库
git push <remote_name> --tags 推送所有本地标签到远程仓库

8. 高级技巧

命令 说明
git stash 将当前工作区和暂存区的修改临时"储藏"起来
git stash pop 恢复最近一次储藏的内容,并删除储藏记录
git stash list 查看所有的储藏记录
git rebase <分支名> 将当前分支变基到目标分支(常用于整理提交历史)
.gitignore (不是命令) 创建一个文件,列出希望 Git 忽略的文件/文件夹模式

常用工作流示例

场景一:日常提交代码

bash 复制代码
git status                  # 1. 查看改了哪些文件
git add .                   # 2. 将所有变更加入暂存区
git commit -m "功能完成"    # 3. 提交到本地仓库
git pull origin main        # 4. 先拉取远程最新代码(解决潜在冲突)
git push origin main        # 5. 推送到远程仓库

场景二:创建新功能分支

bash 复制代码
git switch -c feature/xxx   # 1. 从当前分支创建并切换到功能分支
# ... 进行开发,多次 add & commit ...
git push -u origin feature/xxx # 2. 推送功能分支到远程
# 开发完成后,在代码托管平台(如GitHub)创建Pull Request合并

希望这份大全能帮助你更好地使用 Git!建议先熟练掌握基本操作,再逐步尝试高级功能。

相关推荐
无限进步_1 小时前
C语言数组元素删除算法详解:从基础实现到性能优化
c语言·开发语言·windows·git·算法·github·visual studio
松涛和鸣1 小时前
16、C 语言高级指针与结构体
linux·c语言·开发语言·数据结构·git·算法
楠语1 小时前
从指针行为理解Git中的reset操作
git
麦麦在写代码1 小时前
前端学习5
前端·学习
愚戏师2 小时前
Python3 Socket 网络编程复习笔记
网络·笔记
降临-max2 小时前
JavaSE---网络编程
java·开发语言·网络·笔记·学习
大白的编程日记.3 小时前
【计算网络学习笔记】MySql的多版本控制MVCC和Read View
网络·笔记·学习·mysql
扛麻袋的少年4 小时前
git reset 和 git reflog 解决代码分支提交错误
git
IMPYLH4 小时前
Lua 的 require 函数
java·开发语言·笔记·后端·junit·lua