1.4.3 Git基本操作(历史版本切换、分支管理、)

1.4.3.1 历史版本切换

        当我们遇到这种情况,我们在一周前开发的程序,当时只有一个bug,然而,经过这一周不懈努力,我们的bug增加到了10个!而这种情况很常见滴,明显我们更愿意面对一周前的版本,那我们就需要回退到一周前的版本。

        这里再介绍一个命令git reflog,它可以查看所有分支的所有操作记录(包括已经被删除的commit记录的操作),并且它的唯一标识更简短

那如何切换到历史版本呢?这里用到一个命令,git reset --hard 加上版本的唯一索引值)就切换成功了。

$ git reflog    //查看历史版本
361e86e (HEAD -> master) HEAD@{0}: commit: commit second file
6815cf2 HEAD@{1}: commit (initial): commit first file    //假如我们想切换到这个版本

Administrator@DESKTOP-SG1RG4O MINGW64 /d/Documents/Documents/Repository/my_project (master)
$ git reset --hard 6815cf2    //切换历史版本 后面6815cf2为版本标识符
HEAD is now at 6815cf2 commit first file    //这里提示切换成功

 当然,我们也可以再回到比较新的版本,只要是日志上有的,都可以切换。

1.4.3.2 分支管理介绍

        什么是分支呢?那个例子来说,比如你需要去甲地区拉矿石,还需要去乙地拉石油,你原本只有一辆车,但后来你又顾了一车,然后两辆车可以分开同时去拉货,可能有的快,有的慢,但是最后都拉回来了,最后的结果是你获得了矿石和石油。

总结有这样的规律,多条时间线并行工作,互不打扰,多条时间线可以合并

分支:由每次提交的代码串成一条时间线

分支应用场景

        1.周期较长的模块开发
        假设你准备开发一个新功能,但是需要一个月才能完成。第一周写了20%的代码,突然发现原来已经写好的功能出现了一个严重的Bug,那现在就需要放下手中的新功能,去修复Bug。但这20%的代码不能舍弃,并且也担心丢失,这就需要开启一个新的版本控制。
        2.尝试性的模块开发
        业务人员给我们提出了一个需求,经过我们的思考和分析该需求应该可以使用技术手段进行实现。但是我们还不敢确定,我们就可以去创建一个分支基于分支进行尝试性开发。

        使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。

分支工作流程

        分支是由每次提交的代码串成一条时间线。每次产生新的一个版本,由Master控制,这些版本串成一条线,也就是时间线,而Master指向的是最新的一个版本,当前的时间线就是主线。当我们需要尝试得开发一个项目,假如项目名字叫Dev,Head指向的是当前所使用的分支,这个分支不会影响主线的开发。

         那如何合并呢?开发完后我们将Master指向开发完的Dev,这时这个版本就在主线上了,这时,再使Head指向Master,分支也就合并了

        对于合并后旧的分支,也没有存在的必要,可以给删掉。

 

 总结下来工作流程就是创建新分支、切换分支、合并分支、删除分支

 1.4.3.3 分支管理操作

创建分支git branch + 分支名

        通过git branch ……这个命令创建一个名为fenzhi1的分支;界面显示的蓝色字体master就是当前的处于的分支,也可以通过git status命令查看当前处于的分支;那如何查看有哪些分支呢,直接git branch命令,不要加名称,就显示出来已创建的分支。 

切换分支git checkout + 分支名   

        创建了分支后,如何切换到分支呢?输入git checkout + 分支名就切换了

        现在处于新建的分支fenzhi1,那么在这个分支下操作文件,主线(master)是否会发生改变呢?我们再创建个test2,添加并提交,然后用 ls 命令查看当前分支有哪些文件。

         发现分支下有test.txt和test2.txt文件。再切换到master下,用ls命令查看有哪些文件。

         发线主线下文件并没有发生改变,这就验证了主线和分支是并行、互不影响的。

合并分支 git merge+分支名

        首先我们得处于主线下,如果不是master,需要切换到master。输入git merge +要合并的分支名,这时会发现分支下创建或修改的文件也出现在主线下了。当然,也可将主线合并到分支上,在分支下输入合并master命令就可以实现,但是不建议这样做。

删除分支 git branch -d + 分支名

        这里我一时手乱输入错名字了,它提示这个名字找不到。正确输入后再输入git branch查看fenzhi1已经不见了。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值