git分布式管理-头歌实验冲突处理、忽略文件

一、解决冲突

任务描述

在团队协作开发过程中,可能你和团队中的其他成员,都修改了某个文件的某一部分内容,且其他成员已将该修改推送到了远程仓库。这样当你需要合并他的代码的时候,可能就会在内容上出现冲突,这个时候就需要你去解决这个冲突以完成合并。

本关任务:解决本地不同分支间的冲突。

相关知识
冲突的产生
内容冲突

Git内容冲突产生的原因是,针对版本库中某个文件的某项内容,不同的操作对其做了不同的修改,以致于在合并不同的操作时发生矛盾。比如下面的例子:

1.我们在本地master分支,添加了文件hello,其内容如下:

Learning English is easy and simple

2.然后,我们由master分支切换到一个新的分支develop,并修改hello文件内容如下:

Learning English is easy & simple

随后将其提交到了本地develop分支。

3.我们又切换回master分支,并再次对hello内容进行了修改

Learning English is easy or simple

这样,当我们将develop分支合并到master分支的时候,就会出现冲突提示如下

冲突出现的原因是,我们在develop分支和master分支上,都对hello文件的内容做了修改,这样当将develop合并到master时,Git就不确定究竟应该采用哪个修改。

树冲突

方法文件名修改造成的冲突,称为树冲突。比如,A用户把文件C改名为AB用户把文件C改名为B,那么B合并这两个提交时,就会出现冲突

此时如果使用git status查看版本库的状态,会得到如下提示信息:

树冲突产生的原因是,我们将同一文件名,在不同操作中,修改为不同的名字

解决冲突
内容冲突

当产生内容冲突时,如果你打开冲突发生的文件,你会在冲突区域发现类似于下面的内容:

这个就是我们上面所举的内容冲突的例子,冲突文件的内容。从中可以看到<<<<<<< HEAD=======包括的是我们当前分支的内容,而=======>>>>>>> develop之间的则是需要合并过来的内容,为了解决冲突我们可以手动解决这些冲突,也可以使用图形化工具帮助解决。如果以手动方式解决,我们可以编辑冲突区域内容为我们想要的内容,比如将其修改成如下内容:

Learning English is easy and simple

然后再执行git addgit commit操作提交,这样就能将冲突解决了。 即解决冲突的一般过程为:

  1. 手动编辑冲突区域;
  2. 执行git add,将编辑提交到暂存区;
  3. 执行git commit,将编辑提交到本地仓库以解决冲突。
树冲突

解决树冲突时,对于上面示例中的树冲突,如果最终决定采用文件B,我们可以采用如下方式解决:

git rm A
git rm C
git add B
git commit

即从本地仓库中删除AC文件,然后再添加B文件并最终提交。

编程要求

平台已经为你准备了一个本地版本库gitTraining,并进行了一系列提交,最终在合并分支时产生了冲突,发生冲突的区域内容如下:

请在右侧编辑器Begin-End区域补充代码,合并冲突。在之前的实训中,我们已经多次练习addcommit操作,因此本关只要求你将冲突区域内容合并为:

earning Git is easy,simple

注意:请不要夹杂任何其他字符,包括空格、换行或制表符等,且语句中逗号为英文逗号。

本地master分支做如下操作
mkdir gitTraining
cd gitTraining
git init
touch hello.txt
然后打开hello.txt填入:Learning English is easy and simple。保存
git add hello.txt
git commit -m "master add"
###建立新的分支develop
git checkout -b develop
然后打开hello.txt填入:Learning English is easy & simple 。保存
git add hello.txt
git commit -m "develop"
切换到:本地master分支
git checkout  master
然后打开hello.txt填入:Learning English is easy or simple  保存
git add hello.txt
git commit -m "master add2"
git merge develop
//会提示冲突
打开hello.txt,会看到文件中的冲突的一些提示。要删除全部文本,然后只填充修改后的内容,即解决冲突的处理方案,如:Learning Git is easy,simple。保存,冲突解决。

 二、强制操作

任务描述

如果远程版本库中的某个分支已经无法使用,需要强制覆盖将其更新,或者你的本地代码已经完全不能用,而需要用远程版本库中的某个分支进行覆盖时,你就需要强制操作。

本关任务:强制推送内容到远程分支。

相关知识
强制操作的分类

使用最频繁的强制操作,主要在以下几个方面:

  • 强制推送 如果远程的某个分支的内容需要被覆盖,这个时候就需要你进行强制推送,使用本地内容去覆盖该分支。
  • 强制合并 如果本地分支的内容需要被远程内容覆盖,这个时候就需要强制合并远程分支内容到本地。
  • 强制删除 如果你需要强制删除版本库、暂存区或者工作区的内容时,就需要强制删除。比如我们之前介绍的checkout,就可以使用-f参数,强制丢弃本地修改。
强制操作方法
  • 强制推送 强制推送和普通推送的区别,就在于在末尾加上了-f参数,即:
    git push 远程主机名 本地分支名:远程分支名 -f

    具体使用方法如下:

    #将本地分支强制推送到远程主机origin的master分支
    git push origin master:master -f
    
  • 强制合并 强制合并和普通合并的区别,也是其在末尾加上了-f参数,即: git pull 远程主机名 远程分支名:本地分支名 -f 具体使用方法示例如下
    #将远程master分支强制合并到本地master分支
    git pull origin master:master -f

编程要求

平台已经为你准备了一个远程仓库/tmp/educoder.git,并向其master分支推送了helloGit.txt文件。 本关的编程任务是,补全右侧代码片段中BeginEnd中间的脚本,将helloGit2强制推送到远程master分支,以覆盖掉原有内容。

#创建gitTraining文件夹
mkdir gitTraining#进入gitTraining文件夹
cd gitTraining#将gitTraining初始化为一个本地版本库
git init#创建helloGit2文件
touch helloGit2#添加到暂存区
git add helloGit2#提价到本地仓库
git commit -m "添加helloGit2"#添加远程主机,命名为origin
git remote add origin /tmp/educoder.git#请在下面的Bein/End星号线内填写Git命令将本地master分支强制推送到远程master分支
#********** Begin **********#git push origin  master:master -f
#git push -f origin master
#********** End **********#

三、忽略文件

任务描述

如果你在本地版本库里,放入了仅供本地测试用的文件,但是你并不想将其推送到远程仓库,而且不想每次都被提醒你本地有未提交文件的话,就需要用到Git忽略文件提醒的功能。

本关任务:忽略本地指定类型文件。

相关知识
如何忽略文件

Git工作区的根目录下,创建一个特殊的.gitignore文件,把要忽略的文件名或者文件名的通配符填进去,然后将.gitignore提交到本地仓库,这样Git就会在你添加或者提交时,自动忽略这些文件。

自定义忽略文件

如果我们需要自己定义忽略哪些文件,就需要将其添加到.gitignore文件中去。你可以使用文件的全称,或者使用正则匹配的通配符。如下所示:

编程要求

本关的编程任务是,在右侧编辑区添加内容(右侧编辑区就是.gitignore文件),以忽略所有xml格式(即后缀为.xml)的文件。

 ###*.xml

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/273427.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Buran勒索病毒通过Microsoft Excel Web查询文件进行传播

Buran勒索病毒首次出现在2019年5月&#xff0c;是一款新型的基于RaaS模式进行传播的新型勒索病毒&#xff0c;在一个著名的俄罗斯论坛中进行销售&#xff0c;与其他基于RaaS勒索病毒(如GandCrab)获得30%-40%的收入不同&#xff0c;Buran勒索病毒的作者仅占感染产生的25%的收入,…

C++ 有边数限制的最短路 Bellman_ford算法(带负权边)

给定一个 n 个点 m 条边的有向图&#xff0c;图中可能存在重边和自环&#xff0c; 边权可能为负数。 请你求出从 1 号点到 n 号点的最多经过 k 条边的最短距离&#xff0c;如果无法从 1 号点走到 n 号点&#xff0c;输出 impossible。 注意&#xff1a;图中可能 存在负权回路…

Python调用edge-tts实现在线文字转语音

edge-tts是一个 Python 模块&#xff0c;允许通过Python代码或命令的方式使用 Microsoft Edge 的在线文本转语音服务。 项目源码 GitHub - rany2/edge-tts: Use Microsoft Edges online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an…

精益生产与智能制造:未来制造业的蓝图

随着科技的飞速发展和全球竞争的加剧&#xff0c;制造业正面临着前所未有的挑战和机遇。为了适应这一变革&#xff0c;制造业正在寻求创新和转型&#xff0c;而精益生产和智能制造成为了未来的蓝图。 精益生产是一种以最大限度地提高效率和减少浪费为核心的生产方式。它起源于日…

企业微信变更主体对用户有影响吗?

企业微信变更主体有什么作用&#xff1f;现在很多公司都用企业微信来加客户&#xff0c;有时候辛辛苦苦积累了很多客户&#xff0c;但是公司却因为各种各样的原因需要注销&#xff0c;那么就需要通过企业微信变更主体的方法&#xff0c;把企业微信绑定的公司更改为最新的。企业…

为什么不用 index 做 key?

“在 Vue 中&#xff0c;我们在使用 v-for 渲染列表的时候&#xff0c;为什么要绑定一个 key&#xff1f;能不能用 index 做 key&#xff1f;” 在聊这个问题之前我们还得需要知道 Vue 是如何操作 DOM 结构的。 虚拟DOM 我们知道&#xff0c;Vue 不可以直接操作 DOM 结构&am…

一文了解原型和原型链

本文重点概念&#xff1a; 1、所有的对象都是new一个函数创建的 2、所有的函数都有一个属性prototype&#xff0c;称为函数原型 3、函数原型得到的这个对象都有一个属性constructor,指向该函数 4、所有的对象都有一个属性&#xff1a;隐式原型__proto__&#xff0c;隐式原型…

Django高级之-缓存

Django高级之-缓存 一 缓存介绍 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务…

pyqt线程正确使用

PyQt之科学使用线程处理耗时任务以及线程通信方法 上面这篇文章看似很科学… 经过实际测试&#xff0c;需要按下面创建线程&#xff1a; self.work EmailWork() self.thread QtCore.QThread() self.thread.start()self.work.moveToThread(self.thread) self.work.complete_…

【Java设计模式】八、装饰者模式

文章目录 0、背景1、装饰者模式2、案例3、使用场景4、源码中的实际应用 0、背景 有个快餐店&#xff0c;里面的快餐有炒饭FriedRice 和 炒面FriedNoodles&#xff0c;且加配菜后总价不一样&#xff0c;计算麻烦。如果单独使用继承&#xff0c;那就是&#xff1a; 类爆炸不说&a…

基于SpringBoot疫情打卡健康评测系统

基于SpringBoot疫情打卡健康评测系统~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBootMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 学生端功能效果展示 试卷表 在线考试 打卡管理 居家管理 学生返校申请管理 管理…

基于YOLOv8深度学习的路面坑洞检测与分割系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

阿里巴巴中国站按图搜索1688商品(拍立淘) API 返回值说明

一、应用场景 阿里巴巴中国站的按图搜索1688商品&#xff08;拍立淘&#xff09;功能具有广泛的应用场景。以下是该功能的一些主要应用场景&#xff1a; 1、快速寻找相似商品&#xff1a;当用户看到一款商品但无法准确描述或记忆其详细信息时&#xff0c;可以通过拍立淘功能上…

ARM TrustZone技术解析:构建嵌入式系统的安全扩展基石

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-dSk2aQ85ZR0zxnyI {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

阿里云k8s环境下,因slb限额导致的发布事故

一、背景 阿里云k8s容器&#xff0c;在发布java应用程序的时候&#xff0c;客户端访问出现500错误。 后端服务是健康且可用的&#xff0c;网关层大量500错误请求&#xff0c;slb没有流入和流出流量。 经过回滚&#xff0c;仍未能解决错误。可谓是一次血的教训&#xff0c;特…

使用C#创建服务端Web API

前言 C# Web API 是一种基于 .NET 平台&#xff08;包括但不限于.NET Framework 和 .NET Core&#xff09;构建 HTTP 服务的框架&#xff0c;用于创建 RESTful Web 服务。REST&#xff08;Representational State Transfer&#xff09;是一种软件架构风格&#xff0c;它利用HT…

(黑马出品_04)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

&#xff08;黑马出品_04&#xff09;SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术异步通信 今日目标1.初识MQ1.1.同步和异步通讯1.1.1.同步通讯1.1.2.异步通讯 1.2.技术对比 2.快速入门2.1.安装RabbitMQ2.1.1.单机部署(1).下载镜像方式…

【Tauri】(4):整合Tauri和actix-web做本地大模型应用开发,可以实现session 登陆接口,完成页面展示,进入聊天界面

1&#xff0c;视频地址 https://www.bilibili.com/video/BV1GJ4m1Y7Aj/ 【Tauri】&#xff08;4&#xff09;&#xff1a;整合Tauri和actix-web做本地大模型应用开发&#xff0c;可以实现session 登陆接口&#xff0c;完成页面展示&#xff0c;进入聊天界面 使用国内代理进行加…

数据结构 - 堆

这篇博客将介绍堆的概念以及堆的实现。 1. 堆的定义&#xff1a; 首先堆的元素按照是完全二叉树的顺序存储的。 且堆中的某个节点总是不大于或不小于其父节点的值。 根节点最大的堆叫做大堆&#xff0c;根节点最小的堆叫小堆。逻辑结构如下图所示&#xff1a; 大堆和小堆的…

VBA_NZ系列工具NZ02:VBA读取PDF使用说明

我的教程一共九套及VBA汉英手册一部&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到数据库&#xff0c;到字典&#xff0c;到高级的网抓及类的应用。大家在学习的过程中可能会存在困惑&#xff0c;这么多知识点该如何组织…