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

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

男人对年轻女人都吃不消是什么原因呢?

在这个快节奏的时代&#xff0c;男人与女人之间的关系变得越来越复杂。在许多情况下&#xff0c;男人对年轻女人都感到吃不消&#xff0c;这究竟是为什么呢&#xff1f; 首先&#xff0c;我们不得不承认&#xff0c;现代社会的价值观和审美观念发生了很大的变化。年轻女性越来越…

当GPT遇到网络安全

ChatGPT&#xff1a;是人工智能技术驱动的自然语言处理工具&#xff0c;它能够通过学习和理解人类的语言来进行对话&#xff0c;还能根据聊天的上下文进行互动&#xff0c;真正像人类一样来聊天交流&#xff0c;甚至能完成撰写邮件、视频脚本、文案、翻译、代码等任务。GPT 是 …

稀疏数组实现

博文主要是自己学习的笔记&#xff0c;供自己以后复习使用&#xff0c; 参考的主要教程是B站的 尚硅谷数据结构和算法 稀疏数组(sparse array) 实际需求&#xff1a;五子棋程序中的存盘退出和续上盘的功能 问题分析&#xff1a; 如果直接用二维数组&#xff0c;很多值是默认…

vue3+elementPlus:el-table-column表格列动态设置单元格颜色

:cell-style属性 //html<el-tableempty-text"暂无数据":data"datalist.table":max-height"height"row-key"id"border:cell-style"cellStyle"> <el-table>//js //动态设置单元格颜色 const cellStyle ({ row, c…

深入探索Transformer时代下的NLP革新

《基于GPT-3、ChatGPT、GPT-4等Transformer架构的自然语言处理》主要聚焦于如何使用Python编程语言以及深度学习框架如PyTorch和TensorFlow来构建、训练和调整用于自然语言处理任务的深度神经网络架构&#xff0c;特别是以Transformer为核心模型的架构。 书中详细介绍了Transf…

【Ubuntu 20.04 / 22.04 LTS】最新 esp-matter SDK 软件编译环境搭建步骤

仓库链接&#xff1a;esp-matter SDK官方软件说明&#xff1a;ESP Matter Programming Guide官方参考文档&#xff1a;使用 Matter-SDK 快速搭建 Matter 环境 (Linux) 环境要求 Ubuntu 20.04 或 Ubuntu22.04网络环境支持访问 Gihub 在安装 esp-matter SDK 软件编译环境之前&a…

day9 指针 函数封装

1&#xff1a;在主函数定义字符数组&#xff0c;在自定义函数中实现字符串比较 4 int my_strcmp(char *a,char *b);5 int main(int argc, const char *argv[])6 {7 //strcmp 函数比叫ascii码值大小8 char a[10]"hello";9 char b[10]"helloo";1…

windows环境下搭建minio分布式存储系统并通过nginx实现负载均衡

一、环境准备 windows环境下的minio可执行文件&#xff08;官网下载地址&#xff09;以及nginx&#xff08;官网下载地址&#xff09; 二、本地搭建minio集群 2.1、创建minio存储目录 如下图所示&#xff0c;在minioData目录下创建八个空文件夹 2.2、批处理文件启动mini…

义乌等保测评公司有哪些?用哪款堡垒机好?

对于义乌&#xff0c;相信大家都听过&#xff0c;也都知道&#xff0c;耳熟能详。这不有义乌小伙伴在问&#xff0c;义乌等保测评公司有哪些&#xff1f;用哪款堡垒机好&#xff1f;今天我们就来简单聊聊。 义乌等保测评公司有哪些&#xff1f; 目前浙江义乌本地暂未有正规等保…

ETL与抖音数据同步,让数据流动无阻

在当今数字化时代&#xff0c;数据的价值日益凸显&#xff0c;企业需要从各种渠道获取有关用户行为、市场趋势和竞争对手活动的数据。作为一家专注于数据集成和转换的领先平台&#xff0c;ETLCloud为企业提供了强大的数据同步和转换功能。而与此同时&#xff0c;抖音作为一款热…

多模态融合技术升级!新阶段2大融合模式取得最优性能

传统的多模态融合方法面临着模态表示不一致、灵活性不足等问题&#xff0c;难以适应日益复杂的实际需求。 而随着大模型等新技术的发展&#xff0c;研究者将这些新技术与传统的多模态融合相结合&#xff0c;提出了新阶段的融合模式&#xff0c;包括多模态大模型时代的新架构、…

构建高效Web应用:Flask、Django和FastAPI的全面对比

构建高效Web应用&#xff1a;Flask、Django和FastAPI的全面对比 介绍Flask简介快速入门路由和视图函数模板渲染数据库操作Flask项目实战 Django简介快速入门模型和数据库视图和模板表单处理Django项目实战 FastAPI简介快速入门路径操作和参数请求和响应依赖注入FastAPI项目实战…

基于协同过滤的旅游推荐系统设计与实现

基于协同过滤的旅游推荐系统设计与实现 在当今旅游业蓬勃发展的背景下&#xff0c;人们对于旅游体验的需求日益增加&#xff0c;如何为用户提供更加个性化、精准的旅游推荐成为了旅游行业的一个重要课题。为解决这一问题&#xff0c;我们设计并实现了一个基于协同过滤的旅游推…

苹果电脑专业的Mac垃圾清理工具CleanMyMac X4.14.7

CleanMyMac X是一款专业的Mac清理工具&#xff0c;它具有强大的功能和易用的界面&#xff0c;可以帮助用户快速清理Mac上的无用文件和垃圾&#xff0c;优化系统性能&#xff0c;提升电脑运行速度。 该软件的核心功能包括智能扫描与清理、应用程序管理、隐私保护和系统维护等。…

通用电气 IS220PTURH1BF 涡轮机输入/输出(输入/输出组件)

通用电气 IS220PTURH1BF 涡轮机输入/输出&#xff08;输入/输出组件&#xff09; 一个完整的根据工程的解决方案 通用电气具有丰厚经历的功用安全专家能够设计、履行和支撑您的整个安全体系——包括硬件、软件和使用工程&#xff0c;使您的系统泊车危险最小&#xff0c;一起满意…

计算机组成原理之机器:存储器之主存储器

计算机组成原理之机器&#xff1a;存储器 笔记来源&#xff1a;哈尔滨工业大学计算机组成原理&#xff08;哈工大刘宏伟&#xff09; Chapter3&#xff1a;存储器 3.1 概述 存储器可分哪些类型&#xff1f; 现代存储器的层次结构&#xff0c;为什么要分层&#xff1f; …

强化学习工具箱(Matlab)

1、Get Started 1.1、MDP环境下训练强化学习智能体 MDP环境如下图 每个圆圈代表一个状态每个状态都有上或下的选择智能体从状态 1 开始智能体接收的奖励值为图中状态转移的值训练目标是最大化累计奖励 &#xff08;1&#xff09;创建 MDP 环境 创建一个具有 8 个状态和 2 …

MVO-CNN-BiLSTM多输入分类预测|多元宇宙优化算法-卷积-双向长短期神经网络分类预测(Matlab)

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、算法介绍&#xff1a; 四、完整程序下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matlab平台编译&am…

js【详解】原型 vs 原型链

原型 每个 class 都有显示原型 prototype每个实例都有隐式原型_proto_实例的_proto_指向对应 class 的 prototype 如下范例&#xff1a; class Student 创建了 实例 xialuo 获取属性 xialuo.name 或执行方法 xialuo.sayhi()时&#xff0c;先在自身属性和方法寻找&#xff0…

进程之舞:操作系统中的启动、状态转换与唤醒艺术

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua&#xff0c;在这里我会分享我的知识和经验。&#x…