PyCharm解决Git冲突

技术背景

在前面的一篇博客中,我们介绍了Fork到自己名下的本地仓库如何与远程原始仓库创建链接的方法。在这篇文章中,我们将要讲解如何应对在这种异步开发的过程中经常有可能会遇到的Git冲突问题,在Pycharm这个专业的Python开发工具中集成了一些处理Git冲突的工具,让我们一起来看看如何使用这个工具。

什么时候会出现冲突

当我们从远程的仓库pull下来的时候,如果远程仓库跟本地仓库修改了同一个文件,在pull的过程中就会提示合并冲突:

$ git pull remote develop
remote: Enumerating objects: 27, done.
remote: Counting objects: 100% (27/27), done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 27 (delta 10), reused 0 (delta 0), pack-reused 0
展开对象中: 100% (27/27), 18.44 KiB | 248.00 KiB/s, 完成.
来自 https://gitee.com/helloyesterday/mindsponge
 * branch            develop    -> FETCH_HEAD
删除 mindsponge/system/dimension.py
自动合并 mindsponge/system/__init__.py
冲突(内容):合并冲突于 mindsponge/system/__init__.py
自动合并 mindsponge/__init__.py
冲突(内容):合并冲突于 mindsponge/__init__.py
自动合并失败,修正冲突然后提交修正的结果。

这种类型的冲突一般需要我们去手动解决,我们可以先打开这些提示合并冲突的文件,看看合并冲突具体长什么样子:

# __init__.py
"""Molecular system"""

from .molecule import Molecule, Protein, RigidBody, GetAminoDihedrals
from .residue import Residue, AminoAcid

<<<<<<< HEAD
__all__ = ['Molecule', 'Protein', 'RigidBody', 'Residue', 'AminoAcid', 'DIMENSION', 'set_dimension', 'GetAminoDihedrals']
=======
__all__ = ['Molecule', 'Protein', 'Residue', 'AminoAcid']
>>>>>>> 0ab7841a7671881acf2a2e912bfabcea7e8096e4

可以看到这里面多了三行非Python语法的标记,HEAD标记的是本地仓库的修改,下面那个一串数字的对应的是远程仓库的修改内容。我们所要做的,就是把这三行非Python语法的代码去掉,然后把相应的代码做一个正确的修改。常见的修改策略有:直接采纳远程仓库的修改,或者直接采纳本地的修改,或者手动整合两处的修改。

如何解决冲突

接下来看看具体如何解决当前的冲突。其实如果需要修改的地方并不多、代码也不是很复杂的情况,我们可以直接在编辑器里面把相应的修改手动操作下,然后直接add-commit-push三步曲就推上去了,那接下来的方案也没必要看了。但是如果是对于代码比较复杂的情况,建议采取如下方案,使用PyCharm自带的冲突处理工具来解决Git冲突。首先点击Git -> Resolve Conflicts,然后会弹出如下的窗口:

这个窗口的内容是包含了所有含有待解决冲突的文件信息,我们可以在这个列表中逐一的进行修改。比如我们选中一个文件,点击Merge,就会弹出来如下所示的对比窗口:

在这个对比窗口中,左边的是本地修改后的内容,中间的是未发生该冲突的最后一个分支,右边的是远程修改后的内容。那么此时操作上会容易很多,如果想要保留本地的修改,那就直接把本地的全选复制到中间的窗口中,选择Apply即可。如果要保留远程的修改,一样的把右边窗口的内容全选复制到中间result内容中即可。如果两边的修改内容都要保留,那就可以分别手动的去调整冲突,把相应的修改内容逐一复制到中间的result窗口中的相应位置,最后选择Apply即可。

等到所有的冲突都处理完成之后,就可以add-commit-push三步曲了,如需rebase等操作,可以参考下此前的这一篇关于Git的博客。

总结概要

使用Git工具进行异步开发的优点是非常显而易见的,在开发效率和版本管理上得到非常大的进步。当然异步开发过程中也难免会遇到一些开发冲突,比如两个人同时修改了同一个文件,那最终仓库上的版本肯定只能保留一个版本,因此在pull下来的过程中就会提示合并冲突。此时可以使用PyCharm中的专业合并冲突解决工具来进行处理,该工具首先可以在界面上列举出来所有包含冲突的文件,其次是支持diff的界面,并且可以直接在界面上进行代码修改。通过三个界面上的代码可以清晰的看到异步开发过程中的不同修改,以及冲突发生前的最后一个版本,使用起来逻辑清晰操作简单,十分推荐。

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/pycharm-git.html

作者ID:DechinPhy

更多原著文章请参考:https://www.cnblogs.com/dechinphy/

打赏专用链接:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

腾讯云专栏同步:https://cloud.tencent.com/developer/column/91958

CSDN同步链接:https://blog.csdn.net/baidu_37157624?spm=1008.2028.3001.5343

51CTO同步链接:https://blog.51cto.com/u_15561675

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

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

相关文章

网络基础概念

本文目标&#xff1a; ①了解网络发展背景, 对局域网/广域网的概念有基本认识; ②了解网络协议的意义, 重点理解TCP/IP五层结构模型; ③学习网络传输的基本流程, 理解封装和分用; 1.计算机网络背景 OS与网络 在整个计算机体系中&#xff0c;是先由操作系统&#xff0c;再有网…

Windows下使用SSH密钥实现免密登陆Linux服务器

工具&#xff1a; win10、WinSCP 生成ssh密钥&#xff1a; 打开终端&#xff0c;使账号密码登录&#xff0c;输入命令 ssh-keygen -t rsa 会提示密钥存放路径&#xff0c;一般存放在默认路径&#xff0c;直接回车即可&#xff0c;中间会提示输入密码&#xff0c;这里需要注…

CC攻击原理以及如何防御策略

CC攻击原理以及如何防御策略 CC 攻击是一种 DDoS&#xff08;分布式拒绝服务&#xff09;&#xff0c;它似乎比其他 DDoS 攻击更具技术性。在这种攻击中&#xff0c;看不到假IP&#xff0c;看不到特别大的异常流量&#xff0c;但会导致服务器无法正常连接。 很多创业公司辛辛苦…

你是真的“C”——C语言测评总结

你是真的“C”——C语言测评总结&#x1f60e;前言&#x1f64c;BC146 添加逗号总结撒花&#x1f49e;&#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60a;最喜欢的座右铭&#xff1a;全神贯注的上吧&#xff01;&#xff01;&#xff01; &#x1f60a;作者简介&#xf…

TreEnhance: A Tree Search Method For Low-Light Image Enhancement 论文阅读笔记

这是2023年PR这个期刊的论文主要思想是&#xff0c;利用一系列预定义好的操作序列来进行增强&#xff0c;然后利用强化学习来学习增强序列的预测。所以训练阶段有两个交替进行的阶段&#xff0c;一个是蒙特卡洛树搜索阶段&#xff0c;第二个是训练深度强化学习的阶段。而测试的…

中级软件设计师备考---计算机组成与体系结构3

目录①磁盘工作原理②计算机总线③系统可靠性分析④校验码CRC循环校验码海明校验码①磁盘工作原理 计算题 ②计算机总线 概念题 ③系统可靠性分析 计算可靠度 ④校验码 码距&#xff1a;是指两个码字之间的不同位数。例如&#xff0c;1010和1111之间的码距是2&#xff0c…

160. 相交链表 ——【Leetcode每日一题】

160. 相交链表 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c…

生成式人工智能所面临的问题有哪些?

在生成式人工智能中工作需要混合技术、创造性和协作技能。通过发展这些技能&#xff0c;您将能够在这个令人兴奋且快速发展的领域应对具有挑战性的问题。 生成式人工智能是指一类机器学习技术&#xff0c;旨在生成与训练数据相似但不完全相同的新数据。 换句话说&#xff0c;…

【二分—STL】lower_bound()函数upper_bound()函数的使用总结

目录一、基本用法&#xff1a;二、具体到题目中如何应用1、数的范围2、递增三元组3、数组元素的目标和一、基本用法&#xff1a; lower_bound() 用于二分查找区间内第一个 大于等于某值(> x) 的迭代器位置 upper_bound() 用于二分查找区间内第一个 大于某值(> x) 的迭代器…

IP协议以及相关技术

这里写目录标题前言正文IP基本认识IP的作用IP和MAC的关系IP地址的基础知识IP地址定义IP地址分类(IPv4)无分类IP地址CIDR子网掩码IPv6基础知识相关技术DNS域名解析ARPDHCPNATICMPIGMP总结参考连接前言 大家好&#xff0c;我是练习两年半的Java练习生&#xff0c;今天我们来讲一…

Meta AI Segment Anything Model (SAM)初体验

最近Meta AI发布了Segment Anything模型&#xff0c;可以直接分割任何图片。我趁热乎体验了一下。 文章目录进入官网 & 上传图片Hover & Click——截取物体Box——框选物体Everything——提取所有物体Cut-Outs——提取结果进入官网 & 上传图片 打开Segment Anythi…

JMP指令寻址方式总结,JMP BX指令寻址方式是什么

jmp 指令的几种寻址方式 jmp short 标号 段间跳转 -128-127 jmp far ptr 标号 超段转移 跳转包含目标地址jmp reg 16位寄存器 jmp word ptr 内存单元地址 段内转移 jmp dword ptr 内存单元地址 ( 段间转移) 高字地址存放cs 低字节存放ip jmp指令用法总结 1.直接用法(只能在Deb…

hadoop3.2.4 集群环境搭建

本文介绍hadoop3.2.4集群环境搭建看本文之前最好先看看伪分布式的 搭建文章链接如下&#xff0c;因为有些问题是伪分布式的时候遇到的&#xff0c;这里就不重复展示解决办法了。 链接&#xff1a;伪分布式搭建 文章目录前言一、准备机器二、linux环境准备工作2.1 修改主机名2.2…

超详细从入门到精通,pytest自动化测试框架实战-钩子函数(五)

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 pytest这个框架提供…

政务云建设与应用解决方案

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除 政府信息化趋势-四大四新-政务云需求 大平台共享-新设施&#xff1a;打造形成“覆盖全市、统筹利用、统一投入”的大平台&#xff0c;有力促进政务信息系统整合&#xff1b; 大…

面试官:说一说mysql的varchar字段最大长度?

在mysql建表sql里&#xff0c;我们经常会有定义字符串类型的需求。 CREATE TABLE user (name varchar(100) NOT NULL DEFAULT COMMENT 名字 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 ;比方说user表里的名字&#xff0c;就是个字符串。mysql里有两个类型比较适合这个场景。 ch…

【Maven】2—命令行创建Web工程依赖排除

⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; 如果文章对你有所帮助&#xff0c;可以点赞&#x1f44d;…

【游戏逆向】FPS游戏玩家对象数据分析

目标(Objective) Ÿ Health Ÿ Rifle Ammo Ÿ Pistol Ammo Ÿ Player Pointer 0x01 玩家健康 查找玩家健康值&#xff0c;玩家健康值是100&#xff0c;但是我们并不知道数值类型&#xff0c;我们可以使用精确搜索方式搜索100-所有类型 CE搜索 结果很多&#xff0c;我们…

Windows/Mac/Linux测试远程端口是否开放

目录 Windows 第一种 第二种 Mac/Linux Windows 第一种 WinR快捷键, 在弹出的运行框中输入powershell 接着在powershell窗口中输入&#xff1a; Test-NetConnection ip地址 -Port 端口号 使用这个命令有个好的地方是如果失败了, 那么它会帮你去ping远程ip, 这样就不需…

ARIMA序列分析

1. 什么是平稳序列 &#xff08;stationary series&#xff09;&#xff1a;基本上不存在趋势的序列&#xff0c;各观察值基本上在某个固定的水平上波动或虽有波动&#xff0c;但并不存在某种规律&#xff0c;而其波动可以看成是随机的。 2. ARMA模型 ARIMA的优缺点 优点&am…