Git的使用指南

本讲义以一个Git学习网站为参考而编写,这个网站具体与可见,可以把git代码式的命令转为图形动态演示。

目录

Git简单介绍

Git技巧

主要元素介绍

主要命令1:

commit

主要命令2:

branch

主要命令3:

checkout

 高级命令

主要命令4:

merge

注意!

主要命令5:

rebase

总结一下


Git简单介绍

Git官网是这样介绍它自己的产品的:

"Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency."

百度百科的翻译我就不贴过来了,简单来说,Git就像是电脑上的ctrl + s,但功能远比safe复杂,同时也好用得多。Git支持在保存的同时,保留不同时间,不同内容的文件,我们称之为“版本”……还有一些更复杂但同时也更有意思的操作,以后会介绍。

Git在电脑上的运作原理

Git技巧

主要元素介绍

注意:

这里用的表示都是上文提到的git学习网站的表示

Cn (n为数字) 提交记录

main 主分支

* 当前位置

箭头 指示提交前后顺序

主要命令1:

commit

commit命令把本地文件直接push到git仓库,而不是存储到缓存库中

这个命令进行一次提交,在当前位置下面(*号的位置)再次提交一次,同时当前位置也变换到最新一次提交标题

git commit

主要命令2:

branch

branch可以创建一个分支,就像树上长出了另外的枝条

而且需要注意的是,不用担心多建分支会占用过多的空间,相反,多建分支有利于保存你在不同时期写下来的想法,有利于以后的维护与更新

git branch <branchname>

这里创建了一个分支,但是需要注意的是,这个分支现在是与main分支是同步的,然后如果这里再进行一次提交会发生什么,来看看:

git commit

敲重点:

这个分支看起来不是我们所想的变成两条线,而是仍停留在同一个枝干上,但是如果再看的仔细一点,我们会发现其他的特点,那就是每次提交都是在main*这个位置再往下提交一次

如果我们想切换到我们新创建的分支,可以试试以下的命令:

主要命令3:

checkout

git checkout <branchname>; git commit

 注意:这里的;号是隔开两个命令,在当前环境适用,但是可能不会在别的环境适用

 这是结果:

可以看的,git首先把*号挪到了newImage这个新分支上面,然后在newImage这个分支上往下提交了一次,这样留在原地的就是main分支

注意:Git的2.23版本中引入了switch命令,功能是与checkout差不多的,但是细节方面可以去RTFM(下图的“这里”的链接),另附:

 高级命令

git checkout -b <branchname>

这个命令可以创建新分支的同时切换到那个分支,但是我作为一个半入门者,我觉得先把前两个初级的命令搞懂逻辑之后再学会更有益一点,别到时候忘了这个高级命令(毕竟还是有点难记的)的时候初级命令也忘了怎么用

主要命令4:

merge

这个命令适用于把两个分支合并到一起,然后“产生一个特殊的提交记录”,教程如是说,让我们看看到底怎么特殊

现在我们有以下的提交(晚点我研究以下是怎么做到有两个分支的),输入以下命令:

git merge <branchname>

会有以上的变化

注意:

我们要牢记,git的提交永远都是从*所在的位置进行提交,这里执行的命令也是,它创建的新分支在*号原来在的位置的下方,这个提交同时把bugFix和*所在的分支一起合并然后提交。

然后……然后,作者闲着没事又把bugFix和*号所在的main合并提交,最终产生了以下的结果:

输入:

git checkout bugFix; git merge main
## 这里也用分号表示运行两次,不是什么特殊语法 ##
## 这里的branchname用了具体名字,不想把读者搞晕 ##

 结果为:

注意!

这里先把*号所在的分支切换到bugFix,然后本来是main合并到bugFix,但是因为已经有c4的提交,所以这个提交约等于bugFix变到了main那里。同时,从颜色可以看出c3往后的提交和bugFix的提交颜色是一样的。

##这里作者没有写好,我再想想怎么再解释得清楚一些##

 跟merge一起出现的进阶:产生真正的多个分支

这里直接用文字太抽象,所以我觉得还是去试试使用我推荐的Git学习网站边打边写。

输入:

git branch <branchname>

git checkout <branchname>

git commit

git checkout main

git commit

git merge <branchname>

产生两个真正的分支需要的条件:

当前分支下面还有别的分支

这就是最后的输出结果:

主要命令5:

rebase

 这个命令的主要功能是合并分支,通过另一种方式。

这个命令和merge不同的点在于,这个命令可以使得提交流程像一直按顺序提交,即使你在提交的过程中产生了多个分支

输入命令:

git rabse main

如图:

输入命令前vs输入命令后

我们可以看到,输入这个命令后,整个提交流程就像是main版本后进行了bug的修改

这有点像市面上游戏的更新一样,但是更新肯定不是像右图这样,步一步push上去的不然服务器会崩掉,所以厂家一般是通过左边这种方式,在main版本玩家游玩的过程中发现问题,然后在别的分支修改,最后版本更新时一并push上去。

注意: 以上都是本人观点与猜测,作者不对此负责

接下来,我们留意到,上图的main和bugFix分支还存在不同,相当于游戏本体还在main分支,但是补丁还在bugFix当中,所以,如果要完成一个版本的更新,我们还要做下一步:

把main和bugFix分支合并为新分支

输入: 

git rebase bugFix

得到以下结果:

输入命令前vs输入命令后

 我们留意到,这里c3'的提交颜色已经融合了,说明main和bugFix分支合并了,游戏新版本已经准备好了

好的,至此我们git的基础命令已经学完了

总结一下

主要有4个命令需要我们掌握:

commit 在当前提交

branch 在当前创建分支

checkout 回到某位置

merge 在当前合并分支

rebase 把当面分支移动到目标分支

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值