Git使用心得&理解

1.Git的分支本质是一个名称为分支名,指向最新提交的一个指针, 每次提交都会更新header指向最新提交的hash;

2.Git的提交是一个链表结构,除了首次提交,后续的每次提交都至少有一个父提交(parent),如果有两个父提交,说明进行了一次merge commit.

3.rebase本质上也是完成一次合并动作,和merge的区别就是,将最新的提交放在base分支的最新提交的前面,保证提交的简洁,不会有很多支线.因此能merge的地方都可以用rebase,需要注意的是,不要针对已经推送远程的提交进行

4.rebase的实际使用场景:

1)最常用:git pull --rebase,从远程拉取代码时,会执行merge,可以以rebase的方式

bash 复制代码
# 拉取远程更新,并把本地提交放在最前面
git pull --rebase

# 简写
git pull -r
  1. 把一个分支 rebase 到另一个分支,
bash 复制代码
# 当前在 feature 分支,把它 rebase 到 main 上
git checkout feature
git rebase main

# 或者一步到位
git rebase main feature

3).交互式 rebase:git rebase -i,这是最强大的功能,可以整理你的提交历史

bash 复制代码
# 对最近 3 个提交进行操作
git rebase -i HEAD~3

# 或者从某个 commit 开始
git rebase -i <commit-hash>

注意:只 rebase 你一个人的分支,永远不要 rebase 别人也在用的分支。

相关推荐
挖掘狂人2 小时前
Git 从 0 到 1:用一个小项目走完 add / commit / reset / merge / rebase / push
git·后端·github
codigger3 小时前
Git 三区域模型:把 add、commit、reset、merge 一次讲透
git·github·编程·编程语言
水饺编程4 小时前
第1章:开发环境搭建,在 Windows 中安装 Git
linux·c语言·汇编·git·ubuntu
idanzk4 小时前
Git 推送 GitHub 报 SSL_READ /src refspec main 不匹配 完整踩坑记录
git·github·ssl
星恒随风6 小时前
Linux开发工具详解(二):Git版本控制、GitHub协作与GDB调试实战
linux·笔记·git·学习·github
寺中人1 天前
Xshell 完全入门指南:从安装到实战,远程连接+文件传输+会话管理全拆解
git·ssh·github·php·远程连接·xshell·运维工具
酬谢神明则必安1 天前
git学习记录01
linux·git·学习
lingchen19061 天前
版本控制 Git源代码项目管理
git
虫无涯1 天前
Coverity 如何结合 GJB8114-2013使用?
git·单元测试·嵌入式测试·coverity·静态扫描
喵本喵叁肆1 天前
Git 深度解读:从对象模型到分支指针,把版本控制的内核讲透
git