网站首页 > 精选文章 正文
说在前面:
- 带*号的就是当前所指分支(也就是HEAD指针所指)
- 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很好理解
猜你喜欢
- 2025-05-08 如何使用 Python 操作 Git 代码?GitPython 入门介绍
- 2025-05-08 GIT提交记录和Revert commit过程分析
- 2025-05-08 实战百万文件monorepo仓库的优化(实战百万文件monorepo仓库的优化研究)
- 2025-05-08 如何在GitHub上大显身手?(github zen)
- 2025-05-08 k8s自动化运维四之数据备份(k8s备份deploy)
- 2025-05-08 轻松部署Gemma3-27B,L20服务器+最新版vLLM高效推理
- 2025-05-08 从 Element UI 源码的构建流程来看前端 UI 库设计
- 2025-05-08 在游戏中学习git操作(五)(github游戏)
- 2025-05-08 CMake中的"包管理"模块FetchContent
- 2025-05-08 【git】 如何删除所有 tag(本地和远程)
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)