try learning-git-branching

文章目录

      • merge
      • rebase
      • 分离 HEAD
      • 相对引用
        • 利用父节点
        • branch -f
      • 撤销变更
      • cherry-pick
      • 交互式 rebase
      • 只取一个提交记录
      • 提交的技巧
        • rebase 在上一次提交上amend
        • cherry-pick 在上一次提交上 amend
      • tag
      • 多分支 rebase
      • 两个parent节点
      • 纠缠不清的分支
      • 偏离的提交历史
      • 锁定的Main
      • 推送主分支
      • 合并远程仓库
      • 远程跟踪
      • push 的参数
      • push 的参数2
      • fetch 的参数
      • 没有 source 的 source
      • pull 参数

发现一个小工具,复习一下 git 相关的操作,对 git 的一些命令又有了深入的理解。
learning git branching

merge

  • 创建新分支 bugFix
  • git checkout bugFix 命令切换到该分支
  • 提交一次
  • git checkout main 切换回 main
  • 再提交一次
  • git mergebugFix 合并到 main
git checkout -b bugFix
git commit 
git checkout main
git commit
git merge bugFix

请添加图片描述

rebase

操作:

  • 新建并切换到 bugFix 分支
  • 提交一次
  • 切换回 main 分支再提交一次
  • 再次切换到 bugFix 分支,rebase 到 main 上
git checkout -b bugFix
git commit 
git checkout main
git commit
git checkout bugFix
git rebase main

请添加图片描述

分离 HEAD

git checkout c4

请添加图片描述

相对引用

利用父节点
git checkout HEAD^

寻找 bugFix 的父节点

git checkout bugFix^

请添加图片描述

branch -f

强制修改分支位置

git branch -f bugFix c0
git branch -f main c6
git checkout c1

请添加图片描述

或者

git checkout c1
git branch -f bugFix HEAD~1
git branch -f main c6

请添加图片描述

撤销变更

git reset HEAD~1
git checkout pushed
git revert HEAD

请添加图片描述

cherry-pick

git cherry-pick c3 c4 c7

请添加图片描述

交互式 rebase

git rebase -i HEAD~4

请添加图片描述

只取一个提交记录

git rebase -i main
git branch -f main bugFix

请添加图片描述

或者

git checkout main
git cherry-pick bugFix

请添加图片描述

提交的技巧

rebase 在上一次提交上amend
git rebase -i main
git commit --amend
git rebase -i main
git branch -f main caption

请添加图片描述

或者(多种方法尝试)

git rebase -i caption~2
git commit --amend
git rebase -i HEAD~2
git branch -f main caption
cherry-pick 在上一次提交上 amend
git checkout main
git cherry-pick newImage
git commit --amend
git cherry-pick caption

请添加图片描述

tag

git tag v0 c1
git tag v1 c2
git checkout v1

请添加图片描述

多分支 rebase

git rebase main bugFix
git rebase bugFix side
git rebase side another
git branch -f main another

请添加图片描述

两个parent节点

操作符 ^~ 符一样,后面也可以跟一个数字。

但是该操作符后面的数字与 ~ 后面的不同,并不是用来指定向上返回几代,而是指定合并提交记录的某个 parent 提交。还记得前面提到过的一个合并提交有两个 parent 提交吧,所以遇到这样的节点时该选择哪条路径就不是很清晰了。

Git 默认选择合并提交的“第一个” parent 提交,在操作符 ^ 后跟一个数字可以改变这一默认行为。

git checkout HEAD~^2~
git branch -f bugWork HEAD  # git branch -f bugWork
git checkout main

请添加图片描述

或者

git branch bugWork HEAD~^2~

请添加图片描述

纠缠不清的分支

git checkout one
git cherry-pick c4 c3 c2
git checkout two
git cherry-pick c5 c4 c3 c2
git branch -f three c2

请添加图片描述

偏离的提交历史

git clone
git fakeTeamwork
git commit
git fetch
git rebase o/main
git push

请添加图片描述

或者

git clone
git fakeTeamwork
git commit
git pull --rebase
git push

请添加图片描述

锁定的Main

git reset --hard o/main
git checkout -b feature c2
git push   # git push origin feature

请添加图片描述

推送主分支

git fetch
git rebase o/main side1
git rebase side1 side2
git rebase side2 side3
git rebase side3 main
git push

请添加图片描述

合并远程仓库

git fetch
git rebase o/main main
git merge side1
git merge side2
git merge side3
git push

请添加图片描述

远程跟踪

git checkout -b side o/main
git commit
git fetch
git rebase o/main side
git push

或者

git checkout -b side o/main
git commit
git pull --rebase
git push

请添加图片描述

push 的参数

git push origin main
git push origin foo

请添加图片描述

push 的参数2

git push origin foo:main
git push origin main^:foo

请添加图片描述

fetch 的参数

git fetch origin c3:foo
git fetch origin c6:main
git checkout foo
git merge main

请添加图片描述

没有 source 的 source

git push origin :foo
git fetch origin :bar

请添加图片描述

pull 参数

git pull 到头来就是 fetch 后跟 merge 的缩写。可以理解为用同样的参数执行 git fetch,然后再 merge 所抓取到的提交记录。

git pull origin foo 相当于:git fetch origin foo; git merge o/foo

git pull origin bar:bugFix 相当于:git fetch origin bar:bugFix; git merge bugFix

git fetch origin c3:foo
git fetch origin c2:side
git merge foo
git merge side

或者

git pull origin c3:foo
git pull origin c2:side

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/970914.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

「软件设计模式」单例模式(Singleton)

深入解析单例模式:从思想到C实战实现 一、设计模式与单例模式思想 1.1 设计模式的价值 设计模式是软件工程领域的经验结晶,如同建筑领域的经典蓝图。它们提供了经过验证的解决方案模板,能有效解决以下问题: 提高代码复用性提升…

ICRA-2025 | 具身导航如何跨越地形障碍?SARO:通过视觉语言模型实现地形穿越

作者:Shaoting Zhu, Derun Li, Linzhan Mou, Yong Liu, Ningyi Xu, Hang Zhao 单位:清华大学交叉信息研究院,上海交通大学电子信息与电气工程学院,浙江大学计算机科学与技术学院,宾夕法尼亚大学GRASP实验室&#xff0…

驱动开发、移植(最后的说法有误,以后会修正)

一、任务明确:把创龙MX8的驱动 按照我们的要求 然后移植到 我们的板子 1.Linux系统启动卡制作, sd卡 先按照 《用户手册—3-2-Linux系统启动卡制作及系统固化》 把创龙的Linux系统刷进去。 2. 把TLIMX8-EVM的板子过一遍 把刚刚烧好系统的sd卡插入 创…

免费deepseek的API获取教程及将API接入word或WPS中

免费deepseek的API获取教程: 1 https://cloud.siliconflow.cn/中注册时填写邀请码:GAejkK6X即可获取2000 万 Tokens; 2 按照图中步骤进行操作 将API接入word或WPS中 1 打开一个word,文件-选项-自定义功能区-勾选开发工具-左侧的信任中心-信任中心设置…

机器学习:k均值

所有代码和文档均在golitter/Decoding-ML-Top10: 使用 Python 优雅地实现机器学习十大经典算法。 (github.com),欢迎查看。 在“无监督学习”中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律&…

文档搜索工具项目-测试报告

目录 1.项目背景 2.测试环境 3.测试计划 3.1功能测试 3.2自动化测试 1.项目背景 主要采用了前后端分离的方式来实现,把整个项目分成前端模块,索引模块,搜索模块,同时将其布置到云服务器中。该搜索引擎只是基于java API的站内…

Field ‘id‘ doesn‘t have a default value

1.程序测试时,运行到向数据库插入数据时,报以下异常 是id没有默认值; 在测试单元内单独向该数据库插入数据,报同样的异常,确定了异常的定位 2.项目时采用mybatisPlus操作数据库,报异常的数据库和另外一个数据库关联,主键ID和另外一个数据库相同,通过读取另外一个数据库的ID获…

hive:分桶表和分区表的区别, 分桶表,抽样查询

分桶表和分区表的区别 分桶表 建表语法 clustered by 聚类依据 示例 创建分桶表 加载数据到分桶表(错误) load data local inpath /home/sjh/ft.txt into table sjh.ft; 报错: 提示设置 >>set hive.strict.checks.bucketingfalse 作用是关闭 Hive 中的一个严格检查…

【NLP251】命名实体实战(基于Transformer分类)

1. 查看数据集 json解析工具:JSON 在线解析 | 菜鸟工具 快速了解json文件内容分布 2.构建项目框架 project_root/ │ ├── src/ │ ├── medical_ner/ │ │ ├── datas/ │ │ │ ├── __init__.py │ │ │ ├── bmeso_ner_label…

欧洲分组加密算法之Kasumi

目录 (1)FL函数 (2)FO函数 (3)FI函数 密钥扩展算法 欧洲分组加密算法之Kasumi Kasumi分组密码算法是由欧洲标准机构ETSI(European Telecommunications Standards Institute)下属的安全算法组于1999年设计的,被用于构造A5/3、GEA3、f8和f9算法,参与移动通信系统无线…

SpringBoot速成(12)文章分类P15-P19

1.新增文章分类 1.Postman登录不上,可以从头registe->login一个新的成员:注意,跳转多个url时,post/get/patch记得修改成controller类中对应方法上写的 2.postman运行成功: 但表中不更新:细节有问题: c是…

登录弹窗效果

1,要求 点击登录按钮,弹出登录窗口 提示1:登录窗口 display:none 隐藏状态; 提示2:登录按钮点击后,触发事件,修改 display:block 显示状态 提示3:登录窗口中点击关闭按钮&#xff0…

1-16 tortoiseGit分支与Git操作

1-1 创建分支 什么时候需要开分支? - 隔离线上版本和开发版本 - 大功能开发,不想影响到其他人,自己独立开个分支去开发 SVN经典目录结构: - trunk-------------------------开发中的文件 - bran…

【工业安全】-CVE-2022-35561- Tenda W6路由器 栈溢出漏洞

文章目录 1.漏洞描述 2.环境搭建 3.漏洞复现 4.漏洞分析 4.1:代码分析 4.2:流量分析 5.poc代码: 1.漏洞描述 漏洞编号:CVE-2022-35561 漏洞名称:Tenda W6 栈溢出漏洞 威胁等级:高危 漏洞详情&#xff1…

HDFS体系结构

HDFS 支持主从结 构 , 主节 点 称为 NameNode ,从节点称为 DataNode HDFS中还包含一个 SecondaryNameNode 进程,只要辅助主节点 公司BOSS:NameNode (NN) 秘书:SecondaryNameNode (2NN) 员工&a…

物联网智能语音控制灯光系统设计与实现

背景 随着物联网技术的蓬勃发展,智能家居逐渐成为现代生活的一部分。在众多智能家居应用中,智能灯光控制系统尤为重要。通过语音控制和自动调节灯光,用户可以更便捷地操作家中的照明设备,提高生活的舒适度与便利性。本文将介绍一…

大模型开发实战篇5:多模态--文生图模型API

大模型文生图是一种基于人工智能大模型的技术,能够将自然语言文本描述转化为对应的图像。目前非常火的AI大模型赛道,有很多公司在此赛道竞争。详情可看这篇文章。 今天我们来看下如何调用WebAPI来实现文生图功能。我们一般都会将OpenAI的接口&#xff0…

(arxiv2411) CARE Transformer

作者提出了两个问题,问题 1:堆叠是充分利用局部归纳偏差和长距离信息优势的最佳方法吗? 问题 2:是否有可能同时提高线性视觉 Transformer 的效率和准确性? 为了解决这两个问题,作者提出了一种 deCoupled du…

时间序列分析(四)——差分运算、延迟算子、AR(p)模型

此前篇章: 时间序列分析(一)——基础概念篇 时间序列分析(二)——平稳性检验 时间序列分析(三)——白噪声检验 一、差分运算 差分运算的定义:差分运算是一种将非平稳时间序列转换…

仿叮咚买菜鸿蒙原生APP

# DingdongShopping 这是一个原生鸿蒙版的仿叮咚买菜APP项目 鸿蒙Next发布至今已经有一年多的时间了,但有时候我们想要实现一些复杂的功能或者效果,在开发文档上查阅一些资料还是比较费时的,有可能还找不到我们想要的内容。而社会层面上分享…