Git已经学习过很久了,但是一直没有系统总结过。这篇博客主要是总结一下之前学习的Git命令。包括:commit,branch,checkout,merge,rebase,reset,revert
这里神经质的插播一条今天学习的一些关于IP的知识点,也相当于是一个回顾总结。
路由器一般只会到OSI模型的前三层协议:物理层、数据链路层和网络层。408里面学过的点,物理层放大光/电信号的设备是集线器(hub)。集线器会构成冲突域,也就是说通过集线器连接的设备不能同时发送数据包,因为会产生冲突。数据链路层采用的是交换机(switch),交换机的每个接口会构成一个冲突域,也就是说交换机会隔离冲突域,但是通过交换机连接的设备会形成广播域(使用MAC地址通信)。一般情况下,通过交换机连接的设备会构成一个LAN。而路由器则是基于网络层的设备,路由器能够隔离广播域(使用IP地址通信)。
一台路由器一般由主控板,接口板和交换板构成。下面考虑一个数据包的传送过程:在计算机网络中,首先是物理层中的光/电信号通过硬件被转换成数据帧(空-帧识别-帧开始-源MAC-源IP-目的IP-目的MAC-帧结束)。数据帧被解析之后,路由器根据数据帧的类型判断是否需要进行转发(比如报文协议就不需要转发,而IPV4协议则需要转发),当数据包需要被转发时,路由器查询路由表(由主控板下发至接口板中,感觉类似于微服务中的配置下发),得到转发的ip和下一跳接口,根据ARP协议将转发的ip转化成MAC地址填入数据帧的目的MAC地址中,这样数据包就被路由器转发出去了。
ipv4一般分为五类。A类:第一位必定是0,范围在1.0.0.0-127.255.255.255;B类:前2为必定是10,范围在128.0.0.0-191.255.255.255;C类:前3为必定为110,192.0.0.0-223.255.255.255;D类:前4位必定为1110,224.0.0.0-239.255.255.255。
git commit
复制
git commit会基于父版本进行一次提交操作。
git branch 分支名
------------下图命令--------
git branch newImage
git commit
复制
git branch会基于当前的指针创建一个新的分支。
git checkout 分支名
------------下图命令--------
git checkout newImage
git commit
复制
git checkout能够切换分支.
如果创建新分支的同时,想要切换到新的分支,使用:
git checkout -b 分支名
复制
git merge
复制
git merge用于合并两个分支。对下图执行
git merge bugFix
复制
会得到如下结果
git rebase
复制
git rebase也是用于合并多个分支,但是它是线性合并。
对下图执行
git rebase main
复制
会得到如下结果:
Git中的HEAD指针一般情况下是指向当前分支上的最近一次提交。可以通过
git checkout 提交的哈希值
复制
将HEAD指针指向任意一次提交的位置。
相对引用:使用^,可以向上移动一个记录;使用~num,可以向上移动num个记录。也就是说main^就是main的父结点。HEAD~4就是在HEAD指针的基础上退后四步(不算当前这步)。
git branch -f main HEAD~
复制
上面的命令会将 main 分支强制指向 HEAD 的第 3 级父提交。
git reset HEAD^
复制
git reset通过将版本退回到之前的版本来实现撤回操作,原来指向的提交就像不存在一样。git reset在本地分支使用很方便,但是不能提交到远程分支。
git revert
复制
git revert 能够撤销修改,并分享到远程。