【git分支及处理冲突的方法】

git分支概述

为了避免影响主线的开发,git分支应运而生。git分支可以把程序员的工作从开发主线分离出来。git分支被称为git的“必杀技”,它能够便捷地创建和切换分支。

git分支常用命令

git分支命令功能
git branch 分支名创建分支
git branch -v查看当前文件夹下的全部分支
git checkout 分支名切换分支
git merge 分支合并分支

git branch 分支名

创建分支

在这里插入图片描述


注:如果出现以下错误,则说明分支中的文件还未被commit,我们需要把文件提交(commit)至本地库才可以创建新的分支。

在这里插入图片描述


git branch -v

查看当前文件夹下的全部分支

在这里插入图片描述


在这里插入图片描述


git checkout 分支名

切换分支

在这里插入图片描述

分支由原先的master切换为test



查看test分支下的index.txt文件

在这里插入图片描述

查看master分支中index.txt文件

在这里插入图片描述

上述的操作是为了验证test分支的内容是从master分支复制而来



修改master分支中的内容

在这里插入图片描述

在这里插入图片描述

添加和提交修改后的内容

在这里插入图片描述

再次切换到test分支查看index.txt文件内容

在这里插入图片描述


发现test分支中的内容仍是上一次复制master分支的内容。

上述的操作是为了验证test分支并没有随着master的更新而更新

当然,我们也可以通过查看分支中的提交日志来判断两个分支是否相同

在这里插入图片描述


修改test分支内容

在这里插入图片描述

在这里插入图片描述

提交修改后的内容

在这里插入图片描述


切换到master分支并查看index.txt文件内容

在这里插入图片描述

上述操作是为了验证master分支不会随着test分支的改变而改变


git merge 分支名

将某一分支合并到当前分支上

此例中是将test分支合并到master分支上

在这里插入图片描述

但此时合并时出现了冲突


先查看一下此时本地库的状态

在这里插入图片描述

说明此时我们对不同分支的同一文件中的同一位置进行了修改,所以合并时产生了冲突。当git不能自动合并分支内容时,就需要手动合并两个分支中的内容。输入 vim index.txt修改冲突的文件


在这里插入图片描述

我们需要决定保留哪些代码,然后再删除特定的字符,最后再进行保存操作。

在这里插入图片描述

再次将修改的文件添加到暂存区以及提交到本地库(此时提交时不能加文件名

在这里插入图片描述

在这里插入图片描述



基于码云模拟开发环境中处理冲突

前置准备:一个码云远程库

远程库的内容

在这里插入图片描述

克隆同一远程仓库至两个不同文件夹

在这里插入图片描述

在不同文件夹下设置两个局部用户签名

1.在cxf文件夹下设置用户签名

在这里插入图片描述

  1. 在penrose文件夹下设置用户签名

在这里插入图片描述


修改cxf文件夹下index.txt的内容

在这里插入图片描述

添加和提交修改后的文件

在这里插入图片描述

将本地库修改的文件推送到远程库

在这里插入图片描述


修改penrose文件下index.txt的内容

在这里插入图片描述

添加和提交修改后的文件

在这里插入图片描述

将本地库修改的文件推送到远程库

在这里插入图片描述

此时出现合并冲突,因为cxf已经更新了远程库中的内容

此时我们需要先从远程库拉取最新的内容

在这里插入图片描述

此时显示自动合并index.txt文件,但是自动合并失败了,因为cxf和penrose对同一文件的同一位置进行了修改,此时git不能解决冲突,需要我们手动解决代码的冲突。


在这里插入图片描述
)]

保留自己需要的内容

在这里插入图片描述

添加和提交修改的内容

在这里插入图片描述


再次推送到远程库即可成功

在这里插入图片描述

查看远程库的内容是已经更新后的内容

在这里插入图片描述


总结

如果团队成员只是在原分支的不同位置添加代码,则不会出现冲突,git会进行代码的自动合并

但如果修改了同一位置的代码,则就会出现合并冲突。


如果远程库中的内容已经更新,但我们在工作时没有进行拉取操作。当我们把自己修改的代码推送到远程库时,就会被远程库拒绝。此时的解决办法是先从远程库拉取到新的代码。如果要解决合并冲突,一定要在自己的分支进行修改。冲突解决后,再把自己的代码推送到远程库。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值