首页 > 其他分享 >git学习随笔1

git学习随笔1

时间:2023-05-21 16:11:23浏览次数:45  
标签:main git bugFix 学习 Git 提交 随笔 分支

Git Commit

Git 仓库中的提交记录保存的是你的目录下所有文件的快照,就像是把整个目录复制,然后再粘贴一样,但比复制粘贴优雅许多!
Git 希望提交记录尽可能地轻量,因此在你每次进行提交时,它并不会盲目地复制整个目录。条件允许的情况下,它会将当前版本与仓库中的上一个版本进行对比,并把所有的差异打包到一起作为一个提交记录。
Git 还保存了提交的历史记录。对于项目组的成员来说,维护提交历史对大家都有好处。

  1. git commit提交

Git Branch

Git 的分支也非常轻量。它们只是简单地指向某个提交纪录 —— 仅此而已。所以许多 Git 爱好者传颂:
早建分支!多用分支!
这是因为即使创建再多的分支也不会造成储存或内存上的开销,并且按逻辑分解工作到不同的分支要比维护那些特别臃肿的分支简单多了。
在将分支和提交记录结合起来后,我们会看到两者如何协作。现在只要记住使用分支其实就相当于在说:“我想基于这个提交以及它所有的父提交进行新的工作。”

  1. git branch 创建新的分支
  2. git checkout name 转到新的分支上,即令当前分支为name分支

分支与合并

Git 中合并两个分支时会产生一个特殊的提交记录,它有两个父节点。翻译成自然语言相当于:“我要把这两个父节点本身及它们所有的祖先都包含进来。”

第一种是 git merge合并
  1. git branch bugFix 创建分支
  2. git commit 提交主分支内容
  3. git checkout 转到bugFix分支
  4. git commit 提交bugFix分支的修改内容
  5. git merge main 合并main与bugFix(注:现在在bugFix分支上,故需合并main)
第二种是 git rebase

Rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去。
Rebase 的优势就是可以创造更线性的提交历史,这听上去有些难以理解。如果只允许使用 Rebase 的话,代码库的提交历史将会变得异常清晰。

  • 举个例子:我们想要把 bugFix 分支里的工作直接移到 main 分支上。移动以后会使得两个分支的功能看起来像是按顺序开发,但实际上它们是并行开发的。
    用 git rebase 实现此目标的结果如图

    代码如下:
  1. git branch bugFix新建分支
  2. git commit 提交分支内容
  3. git checkout main 转到main分支
  4. git commit 提交主分支内容
  5. git checkout bugFix 转到bugFix
  6. git rebase main 合并分支
    现在 bugFix 分支上的工作在 main 的最顶端,同时我们也得到了一个更线性的提交序列。
    注意,提交记录 C3 依然存在(树上那个半透明的节点),而 C3' 是我们 Rebase 到 main 分支上的 C3 的副本

标签:main,git,bugFix,学习,Git,提交,随笔,分支
From: https://www.cnblogs.com/lingfeng647/p/17418716.html

相关文章

  • 2023 从纯小白到视觉SLAM开发者 学习路线图
    【2023从纯小白到视觉SLAM开发者学习路线图】共包含5个部分:(1)初学(Beginner)(2)熟悉视觉SLAM(GetFamiliar)(3)单目视觉SLAM(Monocular)(4)RGBD-VSLAM(5)ApplyingDeepLearning前两部分,主要是基础知识点的梳理。论文集包含后三个部分中提到的各个主要论文,其中大部分论文均提供了代码或者项目地......
  • 发现三个很赞的英语学习网站
    阅读文本大概需要2分钟。很多读者都知道我有在学英语,对英语蠢蠢欲动的同学,纷纷给我留言,问我是怎么学习的?有什么学习渠道、学习技巧之类的么?哪有啊,我也就是随意瞎学,没有任何技巧而言,我总觉得学习哪有那么多所谓的学习技巧、学习捷径,就按部就班默默的坚持就好了。但是虽说没什么学......
  • 推荐一些非常有用的学习网站
    昨天的文章很多人表示很受用,同时有人留言让我推荐一些学习渠道啥的,马上双11,姑且忙中偷闲送波福利给你们,今天就给你们推荐一些绝对有用的学习网站。1.free-programming-books这个就不多说了,之前有推荐过的,免费的计算机编程类书籍,很多很全,不过都是英文的,有英语阅读习惯的人强烈推......
  • Asp.net MVC 3实例学习之ExtShop(六)——登录对话框
         登录对话框将使用jquery提供的对话框,所以不需要添加其它js文件。首先要为登录对话框添加一个表单模型。在Models目录下创建一个“AccountModels”类文件,然后添加一个Logon类,代码如下:1     public class LogOnModel2     {3      ......
  • git配置
    1.先去下载安装git(傻瓜式)2.在下好的程序右键 gitbashhere3.打开后终端弹出输入  git--version:出现git版本号证明git已经安装好了,我这里没下载代码,我只是自己cmd输入了下指令:  git--version,出现了版本号:  视频里的界面(学习): 4.安装好了之后要第一步要注......
  • JavaScript学习笔记:模块
    前言在js编程中,模块指的是按照一定格式将代码以功能拆分后作为独立文件存在的一个实体。早期的JS并没有规定模块应该如何设计,核心语言也没有针对模块提供相关支持。早期的代码使用IIFE来实现一个模块,它是通过向全局对象添加属性来实现与其他模块来交互的。(function(){v......
  • C#学习笔记 -- 对象初始化语句、索引器、访问器的修饰符
    1、对象初始化语句扩展语法有如下两种扩展语法,第一种当类中没有声明构造器或者声明了无参构造器才能用第二种当类中声明了有参构造器才能用newExampleClass{FieldOrProp=InitProp,FieldOrProp=InitProp,...};newExampleClass(ArgList){FieldOrProp=I......
  • Makefile学习笔记
    ​目录一、概述1.1 Makefile介绍1.2规则1.3核心1.4示例1.5定义命令1.6 make是如何工作的1.7、makefile中使用变量1.8让make自动推导1.9、另类风格的makefile1.10、清空目标文件的规则二、Makefile总述2.1、Makefile里有什么?2.2、 makefile文件名2.3、引用其......
  • 跟姥爷深度学习6 卷积网络的数学计算
    一、前言前面简单用TensorFlow的全连接网络做了气温预测然后深入了解了一下全连接网络的数学计算,接着用CNN(卷积)网络做了手写数字识别,本篇就接着这个节奏来看卷积网络的数学计算。二、卷积网络回顾前面我们使用卷积网络时并没有说太明白,特别是一些参数的含义,这里先补一下功课。......
  • ★教程3:Simulink学习教程入门50例目录2.MATLAB/Simulink安装
    1.订阅本教程用户可以免费获得本博任意1个(包括所有免费专栏和付费专栏)博文对应代码;2.本Simulink课程的所有案例(部分理论知识点除外)均由博主编写而成,供有兴趣的朋友们自己订阅学习使用。未经本人允许,禁止任何形式的商业用途;3.本课程除了介绍常见的Simulink模块介绍之外,我们更侧......