Git所有命令图解

根据Git学习免费网站整理,真的非常适合学习Git的一个网站。

说在前面:

  1. 带*号的就是当前所指分支(也就是HEAD指针所指)
  2. C1、C2这些是每次commit的hash值

git commit

最朴素的就是git commit,一次提交对应一次版本

git branch 和 git checkout

注意此时*并不在bugFix分支上

需要使用checkout指令切换分支

当然这两个命令可以一起合并!

git checkout -b bugFix(这个-b就是branch的意思)

git merge

如果此时再git checkout然后git merge main效果是一样的,因为C5是继承的C4

(当然git merge的过程中可能会出现冲突,一般是多个分支一起修改了一个文件导致的,需要手动解决)

git rebase

Rebase 实际上就是取出一系列的提交记录,"复制"它们,然后在另外一个地方逐个的放下去。

Rebase 的优势就是可以创造更线性的提交历史,这听上去有些难以理解。如果只允许使用 Rebase 的话,代码库的提交历史将会变得异常清晰。

HEAD指针

在我们每次提交的时候,HEAD指针都是跟随main移动的状态

可以在有.git目录下输入cat .git/HEAD命令查看

上面说的HEAD一般都指向分支名 ,但是我们可以用checkout命令将HEAD指向具体的提交记录,而不是具体的分支名,比如 git checkout C1

相对引用

简而言之,上面我们用到的C1、C2(实际是每次commit对应的hash,用git log查看),这就是直接指定checkout到哪儿,与此相对的就是相对引用。 ^就是往上一个,~num,num是几就向上几个

git reset和git revert

比如git reset HEAD~1就是退回HEAD上一个

git revert有点不同,这也跟他和reset的区别有关。reset是本地的回退,revert是远程的回退

所以git revert HEAD

此时C2'和C1的内容完全一样

git chery-pick

就像名字一样,摘樱桃🍒,把另一个分支里需要的提交拿过来,注意顺序

git pull和git fetch

git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。而git pull 则是将远程主机的最新内容拉下来后直接合并

网上流传的git pull = git fetch + git merge很好理解

相关推荐
程途知微24 分钟前
AQS 同步器——Java 并发框架的核心底座全解析
java·后端
iPadiPhone1 小时前
分布式架构的“润滑剂”:RabbitMQ 核心原理与大厂面试避坑指南
分布式·后端·面试·架构·rabbitmq
武子康1 小时前
大数据-255 离线数仓 - Apache Atlas 数据血缘与元数据管理实战指南
大数据·后端·apache hive
javaTodo1 小时前
IntelliJ IDEA 2026.1 上强度了:Spring 运行时 Debug + AI 全面接入,太香了
后端
晴栀ay2 小时前
Generator + RxJS 重构 LLM 流式输出的“丝滑”架构
javascript·后端·llm
下次一定x2 小时前
深度解析 Kratos 客户端服务发现与负载均衡:从 Dial 入口到 gRPC 全链路落地(下篇)
后端·go
彭于晏Yan3 小时前
SpringBoot整合ECC实现文件签名与验签
java·spring boot·后端
pupudawang3 小时前
Spring EL 表达式的简单介绍和使用
java·后端·spring
xianjian09124 小时前
springboot与springcloud以及springcloudalibaba版本对照
spring boot·后端·spring cloud
羊小猪~~4 小时前
【QT】-- QMainWindow简介
开发语言·数据库·c++·后端·qt·前端框架·求职招聘