#PY小贴士# git 的冲突

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

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

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

要如何解决?

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

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

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

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

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

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

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

#PY小贴士# 里,我们会分享 python 知识点、开发小技巧、学习中的常见问题等。篇幅短小,适合碎片时间阅读,欢迎关注!

本栏目接受投稿,采纳后将署名发表,可附个人博客、公众号、Github等。

如果你在编程学习中有疑问,可通过以下方式向我们提问:

1. 加入码上行动答疑群(最及时响应)

2. 加入知识星球 https://t.zsxq.com/IiAiiQj

3. 发微博加上 #编程教室# @Crossin(非私信)

提问时请表述清楚,附上必要代码、输出等截屏。

相关文章
|
6月前
|
存储 开发工具 git
Pycharm git-创建本地仓库\创建分支\合并分支\回溯版本\加入git后文件颜色代表的含义
Pycharm git-创建本地仓库\创建分支\合并分支\回溯版本\加入git后文件颜色代表的含义
278 0
|
开发工具 git
git合并代码原理
git合并代码原理
|
开发工具 git
怎么用 git 命令合并代码?
怎么用 git 命令合并代码?
283 0
怎么用 git 命令合并代码?
|
开发工具 git
Git_IDEA集成git_合并分支(冲突合并)
Git_IDEA集成git_合并分支(冲突合并)
182 0
Git_IDEA集成git_合并分支(冲突合并)
|
IDE 开发工具 git
Git 进阶系列 | 4. 合并冲突
Git 进阶系列 | 4. 合并冲突
190 0
Git 进阶系列 | 4. 合并冲突
|
网络安全 开发工具 git
Git常用语法总结及分支冲突
Git常用语法总结及分支冲突
138 0
|
开发工具 git
Git合并单个文件时的命令都是什么含义呢?
Git合并单个文件时的命令都是什么含义呢?
123 0
|
缓存 开发工具 git
一日一技:使用 Git 在错误的分支上修改了代码怎么办?
一日一技:使用 Git 在错误的分支上修改了代码怎么办?
570 0
一日一技:使用 Git 在错误的分支上修改了代码怎么办?
|
缓存 开发工具 git
Python - Git仓库忽略提交规则 & .gitignore配置
Python - Git仓库忽略提交规则 & .gitignore配置
755 0
|
开发工具 git 缓存
备忘:git已经track文件,添加或修改.gitignore后的处理办法
如果在添加或者修改.gitignore之前,使用了 git add . 命令,那么.gitignore的没有效果,这种情况下,必须先用git rm -r -f --cache . 清除缓存,然后添加或者修改.gitignore,再用git add . 命令,就可以了。
2063 0