gitlab应用学习笔记2

gitlab的应用学习笔记2

书接上回,上一回我们学会了如何创建一个新的分支并且跳转到了这个分支,那么这一回我们就学习一下如何删除我们已经创建的这个分支

首先,需要删除一个分支,那么就要先确定我们目前手头有哪些分支资源,可以利用指令

git branch

在这里插入图片描述

可见,此时我们有两个分支可用,其中master为主线

在此时,加入我们直接运行删除指令:

git branch -d feature/new-table

在这里插入图片描述

我们会发现系统提示,我们无法直接删除位于‘xxxx/xxxx’的分支’feature/new-table’

因为问题出现在,feature/new-table的分支内容和master中的内容不相兼容,因此我们需要先将分支中的内容合并到master当中之后再将其删除

合并分支的方法是:

  1. 用checkout指令跳转到master分支
  2. 用git merge feature/new-table指令将feature/new-table分支插入到主线当中
  3. 用git branch指令查看有哪些可用的分支,此时我们会看到分支feature/new-table是可用的,但是本质上其实已经将其内容进行了合并
  4. 再用指令git branch -d feature/new-table删除这个分支
  5. 用git branch指令还查看,此时会发现已经没有feature/new-table这个分支
git check master
git merge feature/new-table
git branch
git branch -d feature/new-table
git branch

在这里插入图片描述

接下来,我们尝试一下在对分支修改的同时也对master进行修改,而后合并的操作

  1. 创建一个新的分支

    git checkout -b bugfix/table
    
  2. 修改这个新的分支中的html文件,并将其加入暂存区而后提交

    vim index.html
    git add .
    git commit -m "Added table cell"
    
  3. 切换到主分支上,而后在主分支上编辑另一个markdown文件,加入暂存区并保存

    git checkout master
    vim readme.md
    git add .
    git commit -m "Learning branching"
    
  4. 直接发布bugfix/table分支跟主线分支的合并指令

    git merge bugfix/table
    

此时我们发现无法直接实现合并,系统会进入一个配置文件并且提示两者之间已经没有相同的父类,通常此时我们不做任何动作。直接ctrl + x 退出

在这里插入图片描述

书接上回,为了解决在master和分支都被修改之后无法直接快速合并的问题,我们需要一个新的指令rebase

rebase顾名思义可以理解为重新手动将master指定为当前分支(bugfix/table)一个基础节点,从而将bugfix/table合并进去之后在进行删除

在这里插入图片描述

用git checkout bugfix/table指令进入bugfix/table分支,而后运行:

git rebase master

即可认为,重新申明了master为主线,之后再checkout master,然后直接git merge xx/xx就可以直接将分支合并进入主线

在这里插入图片描述

此时再次运行合并指令的时候我们会发现系统提示已经是最新状态,因此也可以断定删除操作也是可以正常进行的。

总结一下,以上的合并显著的特征是:我们更改了不同分支中的不同文件。所以,其内容本质上并没有任何冲突,但是假如在我们的开发过程中,遇到两个分支中,同一个文件被修改为不同的内容时,该如何处理?

接下来,继续学习当不同分支中的同一个文件被更改为不同内容的时候该如何处理?

以下,将只对新出现的指令进行详细说明,之前出现过的指令就不再做详细说明了。

在这里插入图片描述

此时发现无法合并, 因为不同于以往,这次我们的修改针对的是主线和分支上的同一个文件,所以接下来的操作也跟以往大相径庭,并且系统提示冲突内容位于index.html(因为我们之前的修改只是基于两个分支中的index.html文件),此时运行经典查看指令:

git status

在这里插入图片描述

系统提示,此时有针对Index.html的双方修改,导致二者无法merge ,此时根据系统提示可以使用指令

git merge --abort

来终止合并,这样做的话,并没有从根源上解决文件冲突的问题,但是可以使我们在使用git status指令的时候没有任何报错!

此时,如果我们沿用之前解决不同文件更改时候的惯性思维,而强行申明master为分支的话,可以使用指令

git rebase master

在这里插入图片描述

此时系统就会提示,冲突部分的具体代码,但与此同时,系统也提示我们可以用

git rebase --abort

来终止rebase

在这里插入图片描述

终止后,我们进入master分支,尝试继续合并bugfix/table-3,此时系统就会提示双方修改的文件index.html,我们用vim查看这个文件

在这里插入图片描述

可以看出,我们原来的代码中出现了一些

<<<<<<<<<<<<<<<head
aaaaaaaa
===================
bbbbbbbb
>>>>>>>>>>>>>>bugfix/table-3

其表示意义为,aaaaaaaaaa部分为master主分支中的内容,而bbbbbbbbbb则是bugfix/table-3中的内容。

<<<<<<<<<<<<<<head
aaaaaaaa

bbbbbbbb
‘>>>>>>>bugfix/table-3

其表示意义为,aaaaaaaaaa部分为master主分支中的内容,而bbbbbbbbbb则是bugfix/table-3中的内容。

此类问题的解决方法是,打开你的解释器,解释器会自动检测到git并且导入,而且还会同时显示两套代码,并且会重点标注二者不一样的地方,因此只需要选择你所认为正确的那一套代码即可!然后再把这个文件git add index.html而后commit即可!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值