TortoiseGit 入门指南06:解决冲突

上节讲到 拉取 (pull),说到:

拉取不仅将数据下载到你的本地版本库,还会自动合并

在合并期间,将更新工作区文件以反映合并结果。如果合并文件的同一区域被多方更改,就会产生冲突。Git 不能随机选择一方而丢弃另一方,所以会要求开发者手动解决冲突。

每当报告冲突时,都需要解决它。

在发生冲突的文件中,冲突区域有明显的标记,比如:

<<<<<<< yours你当前工作区的代码
=======合并过来的代码
>>>>>>> their

当发生冲突后,TortoiseGit会用图标标出冲突文件,以方便的找到这些文件,如下图红框圈出部分。
在这里插入图片描述

可以使用任何编辑器手动解决冲突,也可以通过 TortoiseGit 提供的菜单解决冲突:选中冲突文件,在右键菜单中选择TortoiseGitEdit Conflicts ,启动外部合并工具/冲突编辑器手动解决冲突。

在这里插入图片描述

使用Edit Conflicts菜单后,TortoiseGit 将在所选冲突文件的目录中放置三个附加文件,并启动配置的冲突编辑器:

  • filename.ext.BASE.ext: 这是冲突文件的共同祖先版本。

  • filename.ext.LOCAL.ext:这是开始合并前工作树中存在的文件。

  • filename.ext.REMOTE.ext: 这是要合并的修订版中的文件。

手动修改冲突文件后,执行 TortoiseGitResolve… 菜单项,会将刚刚的修改冲突内容提交到存储库。务必注意,在没有手动修改冲突文件前,单纯的使用 Resolved 菜单无法真正解决冲突,它只是使用git add命令将冲突文件标记为“冲突已解决”,以允许你后续提交更改,并删除 filename.ext.LOCAL.ext、filename.ext.BASE.ext、和filename.ext.REMOTE.ext 文件。

如果二进制文件产生了冲突,Git不会尝试合并文件本身。本地文件保持不变。为了解决冲突,使用TortoiseGitResolve…菜单项,然后右击冲突文件,选择Resolved(使用本地工作区中的文件)或者选择Resolve conflict using “HEAD” (使用HEAD版本文件)或者选择Resolve conflict using “MERGE_HEAD”(使用合并版本/分支的文件) 。然后进行提交。

如果你选中父文件夹,然后选择 TortoiseGitResolve… 菜单项,则会弹出一个窗口,列出改文件夹中所有的冲突文件,这样就可以将 Resolved 命令用于多个文件。


总结一下,使用TortoiseGit工具处理冲突的步骤如下:

  1. 选中所有冲突文件的父文件夹,选择右键菜单 TortoiseGitResolve…
  2. 在弹出的窗口中会列出所有冲突的文件;
  3. 依次选中文件,选择右键菜单 Edit conflicts,将启动外部合并工具/冲突编辑器;
  4. 在编辑器中手动解决冲突;
  5. 所有冲突文件都解决后,点击 OK 按钮,在弹出的提交窗口中点击 commit 按钮;

如果你只是想用本地的版本替换远端,或者用远端的版本替换本地的,则不必打开任何编辑器,TortoiseGit 提供了更简便的方法:

  1. 选中所有冲突文件的父文件夹,选择右键菜单 TortoiseGitResolve…

  2. 在弹出的窗口中会列出所有冲突的文件;

  3. 依次选中文件,选择右键菜单 Resolve conflict using “HEAD”(使用本地版本替换远端的),或者选择 Resolve conflict using “MERGE_HEAD”(使用远端版本代替本地的)。

    右键菜单 Resolved 是使用当前工作区的版本,但是冲突发生时,当前工作区的版本是带有冲突标记的,如:

    <<<<<<< yours你的更改
    =======changes from the code merged
    >>>>>>> their
    

    所以右键菜单 Resolved 一般用于二进制文件。

  4. 所有冲突文件都解决后,点击OK按钮。

  5. 做一次提交(commit)。









读后有收获,资助博主养娃 - 千金难买知识,但可以买好多奶粉 (〃‘▽’〃)
千金难买知识,但可以买好多奶粉

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

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

相关文章

[微信小程序] movable-view 可移动视图容器 - 范围问题

movable-view 可移动视图容器 可移动视图容器&#xff0c;在页面中可以拖拽滑动。movable-view必须在 movable-area 组件中&#xff0c;并且必须是直接子节点 <view><movable-area style"width: 750rpx;height: 200rpx;background-color: gainsboro;">&l…

4.postgresql--rollup,grouping sets,cube

PostgreSQL ROLLUP 是group by 的子句&#xff0c;是生成多个分组集合的快捷功能。与Cube子句的差异是&#xff0c;rollup 不生成基于特定列所有可能的分组集合&#xff0c;生成分组集合为其子集。 ROLLUP假设输入列之间存在层次结构&#xff0c;从而生成有意义的所有分组集合…

Vue3---什么是路由缓存问题

使用带有参数的路由时需要注意的是&#xff0c;当用户从 /users/johnny 导航到 /users/jolyne 时&#xff0c;相同的组件实例将被重复使用。因为两个路由都渲染同个组件&#xff0c;比起销毁再创建&#xff0c;复用则显得更加高效。不过&#xff0c;这也意味着组件的生命周期钩…

机器学习洞察 | 分布式训练让机器学习更加快速准确

机器学习能够基于数据发现一般化规律的优势日益突显&#xff0c;我们看到有越来越多的开发者关注如何训练出更快速、更准确的机器学习模型&#xff0c;而分布式训练 (Distributed Training) 则能够大幅加速这一进程。 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源…

1130 - Host XXX‘ is not allowed to connect to this MySQL server

mysql 连接报错 这个问题是因为在数据库服务器中的mysql数据库中的user的表中没有没有用户 解决的方法&#xff1a; 登入mysql后&#xff0c;更改 “mysql” 数据库里的 “user” 表里的 “host” 项&#xff0c;从”localhost”改称’%’。 1、连接服务器: mysql -u root -p…

性能测试持续学习 Docker 新建镜像,启动 POD

目录 前言&#xff1a; 1、构建镜像 2、使用已有镜像启动 Pod 前言&#xff1a; 在进行性能测试时&#xff0c;持续学习Docker的使用可以帮助测试团队更好地管理测试环境和资源。通过使用Docker&#xff0c;可以轻松创建和管理测试环境的镜像&#xff0c;并通过启动POD来快…

分布式搜索 (二)

一、DSL 查询文档 1. DSL Query 的分类 Elasticsearch 提供了基于 JSON 的 DSL (Domain Specific Language) 来定义查询 常见的查询类型包括&#xff1a; ① 查询所有&#xff1a;查询出所有数据&#xff0c;一般测 试用 例如&#xff1a;match_all ② 全文检索 (full text) …

这么看,项目经理根本不可能失业

早上好&#xff0c;我是老原。 不知道做项目经理的朋友们有没有这种感觉&#xff0c;明明项目经理是一个高大上的管理岗位&#xff0c;但为何总觉得自己的工作是一个打杂的&#xff1f; 最近就有一个粉丝朋友来和我吐槽&#xff1a;明明是升职&#xff0c;为啥感觉被坑了。 …

基于 MNN 在个人设备上流畅运行大语言模型

LLM&#xff08;大语言模型&#xff09;因其强大的语言理解能力赢得了众多用户的青睐&#xff0c;但LLM庞大规模的参数导致其部署条件苛刻&#xff1b;在网络受限&#xff0c;计算资源有限的场景下无法使用大语言模型的能力&#xff1b;低算力&#xff0c;本地化部署的问题亟待…

【测试开发】自动化测试 selenium 篇

目录 一. 什么是自动化测试 二. selenium 1. selenium的工作原理 2. seleniumJava的环境搭建(Chrome浏览器) 三. selenium中常用的API 1. 定位元素 findElement 1.1 css选择语法 1.2 xpath 2. 操作测试对象 2.1 sendKeys-在对象上模拟按键输入 2.2 click-点击对象…

IP 协议的相关特性

目录 IP协议有三大特点&#xff1a;无连接、无状态、不可靠。 四位版本号 四位头部长度 八位服务类型: 十六位总长度 16 位标识, 3 位标志, 13 位片偏移 八位生存时间 八位协议 十六位首部校验和 关于IP v4地址不够的问题 ip地址动态分配: ip地址转换(NAT) 数据传输…

【xxl-job】分布式任务调度系统xxl-job搭建

XXL-JOB是一个轻量级分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展、开箱即用。 更多介绍&#xff0c;请访问官网&#xff1a;分布式任务调度平台XXL-JOB 一、任务调度中心(基于docker)【Version 2.4.0】 前提条件&#xff1a;任务调度…