#PY小贴士# git 的冲突

讲一个同学问到的 git 问题:

为什么我的 git 在 pull 更新线上最新代码的时候提示失败,然后发现代码里多了一些奇怪的内容:

要如何解决?

这个问题一个人写代码的时候出现的概率不高,但当多人通过 git 协作开发时很常见。

一般情况下,git 会自动将不同开发者提交的内容进行合并。但如果两个人在同一个版本上提交新内容,且修改了相同位置的代码,git 无法自动判断应该听谁的,于是就产生了冲突(conflict)。(有些同学在家里和公司的电脑上都写代码,然后某次忘记更新后在两台电脑上都改了一遍,也会产生类似的问题。)

这时候 git 就会把两边的差异同时标注在代码上,比如图中这样:

<<<< HEAD==== 中间表示最新代码,而 ====>>>> 一串hash值 中间是另一个提交对应的代码。

这时候你要做的,是把另一段代码的提交者喊来,确认最终应该是怎样的代码(有时也比较容易判断,像图中这样一个是注释了代码,而另一个是直接删除掉了,其实是一样的),然后在代码上直接修改。修改完之后,把多余的 <<<< ==== >>>> 等标注全都删掉。

改好后,需要再次通过 addcommit,产生一个新的提交,就会把两边的改动合并在一起了。

如果查看 git 的代码树(如 gitk 或其他图形化工具),就会发现多出一个节点,合并了原本两个分叉的节点。


(0)

相关推荐

  • [git]merge和rebase的区别

    前言 我从用git就一直用rebase,但是新的公司需要用merge命令,我不是很明白,所以查了一些资料,总结了下面的内容,如果有什么不妥的地方,还望指正,我一定虚心学习. merge和rebase ...

  • Git推送代码遇到的413错误

    自建了Gitlab服务器,然后上传代码的时候遇到了下面的错误: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 R ...

  •  Eclipse中使用git解决冲突的方法

    一.先制造冲突 这里的目的是模仿大家平常提交代码遇到的代码冲突问题.(项目已经已经提前创建好并放到了 GIT 上) 先在云端修改TestGit_Master.java文件,如下图: 然后在本地修改Te ...

  • 云编译失败常见原因及解决方法

    当您遇到云编译失败,可先排查以下问题,常见的云编译失败原因和解决方法如下: #问题# 项目中有中文名的文件. 解决办法:删除中文名文件重新提交代码,再编译. #问题# icon图标下载失败. 解决办法 ...

  • Git冲突导致的Please commit your changes or stash them before you merge

    Git冲突导致的Please commit your changes or stash them before you merge 用git pull来更新代码的时候,遇到了下面的问题: error: ...

  • #PY小贴士# 别弄错了 Python 里的这几个运算符

    有人问过这样的问题: 为什么我求圆的面积,结果不对? r = 10s = 3.14 * (r ^ 2)print(s) 还有人问过这样的问题: 为什么判断两个并列条件时结果不对? a = 6if a ...

  • #PY小贴士# 函数也是对象

    之前我们提到过:有同学在写入文件之后发现文件内容并没有改动,有可能是因为在关闭文件时写成了 f.close,没就加括号.那么为什么不加括号就不行,而且程序也没有报错提示呢? 这就要提到 Python ...

  • #PY小贴士# 字典可以通过序号索引来访问?

    我们在学 python 中的 list 和 dict 时知道: list 是有序的,所以可以通过 list_a[0] 这样的方式通过索引(index)来访问列表中某个位置上的元素: dict 是无序的 ...

  • #PY小贴士# for 循环定义的变量,循环外可以用吗?

    在使用 for 循环时,需要定义变量,大多数时候我们都会用一个 i 来表示: for i in range(10): print(i) 我们知道,在 python 中要获取一个变量的值,必须是先给它赋 ...

  • #PY小贴士# 同样是排序,sort和sorted有啥不同?

    对列表中的元素进行排序,有两种常用方法: 1. lst = [3, 5, 2, 1, 7]lst.sort()print(lst) 2. lst = [3, 5, 2, 1, 7]lst = sort ...

  • #PY小贴士# BeautifulSoup的解析器选择

    关于解析网页内容的工具 BeautifulSoup,我们之前做过介绍: 网页解析器 BeautifulSoup 上手教程 做爬虫获取网页信息,我推荐使用 bs4,比 xpath 更人性化些. 有爬虫课 ...

  • #PY小贴士# py2 和 py3 的差别到底有多大?

    昨天的文章里也提到了:python 2 版本将在今年正式停止官方维护.(具体时间上有不同说法,1月1号.4月.8月--但这个差别意义不大了) 从我开始做 Python 编程教学的工作开始,就始终在解答 ...

  • 小贴士 | 沙尘天气下的健康防护提示

    沙尘天气下,污染物可通过眼.鼻.喉等黏膜组织及皮肤,直接对人体产生不同程度的刺激症状或过敏反应.沙尘颗粒还可通过呼吸道进入人体,引起多种呼吸系统疾患. 老年人.儿童.孕妇.患有呼吸系统疾病及心血管疾病 ...