2019独角兽企业重金招聘Python工程师标准>>>

冲突的类型和原因

当两个人在同一个文件的同一行做了修改,或者当一个人将一个文件删除,恰好另外一个人试图修改这个文件的时候就会发生冲突。 也就是说冲突产生的条件是同一文件,并且如果不设计删除文件的情况下,冲突的条件可以缩小到 同一文件同一行。

如何较少冲突

知道冲突产生的原因和类型了,我们可以考虑下,怎么才能减少冲突呢?

1. 根据功能划分feature分支

开发功能,分功能开发的时候。要根据功能划分不同的分支。 比如要开发两个功能,一个是功能A,一个是功能B。 那么我们需要checkout 两个分支  分别是 feat/A  和 feat/B 。 这样的好处是只需要最终上线的时候合并一次,解决一次冲突即可。

2. 组件和模块划分粒度。

如果组件和模块划分粒度比较大,大家修改同一个组件或者同一个模块代码的可能性就会降低,因此冲突概率会下降。

3. 开发之前的沟通

动手开发之前,要先理清思路。 比如开发的影响范围有多大,大概要怎么去做。不仅可以降低开发中遇到大问题返工的风险,而且在一定程度上降低了冲突的可能。

处理冲突的正确步骤:

如果是更改了同一行代码:

# 切换到需要处理冲突的目录
cd ~./your-project# 查看冲突文件
git status# 编辑器中打开,大家也可以设置git merge tool 为自己喜欢的编辑器
# 比如 git merge.tool xxxxx
code filename1.js
or
git mergetool# 大家会看到下面的这种的,就是冲突的地方
其他功能代码
<<<<<<< HEAD
功能A代码  // 这中间的是当前工作区的代码
=======
功能B代码  // 这中间的是合并的分支代码
>>>>>>> feat/B // 这个是具体合并的分支名字# 这个时候,需要叫上开发功能B的人,一起来帮助你解决冲突
# 保留一方或者保留双方# 解决完成后
git add .
git commit -m 'Resolved merge conflict by incorporating both features'

如果是尝试修改删除了的文件:

# 切换到需要处理冲突的目录
cd ~./your-project# 查看冲突文件
git status# 将文件加回来(谁让你删了??)
git add README.md
git commit -m 'Resolved merge conflict by keeping README.md file.'# 将文件删除(谁让你改了??)
git rm README.md
git commit -m 'Resolved merge conflict by removing README.md file.'

心态也很重要

你应该始终牢记,你可以在任何时间执行撤销操作,并返回到你开始合并之前的状态。要对自己有信心,你不会破坏项目中的任何东西。只要在命令行界面中键入 “git merge --abort” 命令,你的合并操作就会被安全的撤销。

当你解决完冲突,并且在合并完成后发现一个错误,你仍然还是有机会来简单地撤销它。你只须要键入 “git reset --hard ” 命令,系统就会回滚到那个合并开始前的状态,然后重新开始吧!

转载于:https://my.oschina.net/wanjubang/blog/1502709

git 实践之冲突管理相关推荐

  1. Git 最佳实践:分支管理

    5月份,为统一团队git分支管理规范,刚开始准备自己写,在网上搜了下,发现不少不错的git分支管理实践.最后我为团队选择了这个git分支管理实践 A successful Git branching ...

  2. Git 远程仓库分支管理

    目录 目录 速查表 关联远程代码仓库 克隆远程仓库 分支管理 创建分支 切换分支 合并分支 删除分支 解决冲突 速查表 指令 作用 git branch 查看分支 git branch newBran ...

  3. 如何将Git用于Unity3D源代码管理?

    本文翻译自:How to use Git for Unity3D source control? What are best practices for using Git source contro ...

  4. 【阅读笔记】精益开发实践用看板管理大型项目

    [阅读笔记]精益开发实践用看板管理大型项目 参考 精益开发实践用看板管理大型项目 文章目录 [阅读笔记]精益开发实践用看板管理大型项目 一.我们如何工作(案例研究) 1.项目背景 2.组织团队 3.每 ...

  5. git版本控制以及分支管理

    git版本控制以及分支管理--一起乘坐时光机 四.深度剖析 一.版本控制---时光机穿梭 1.熟悉版本 2.版本回退 3.管理修改 1.管理修改以及理解工作的原理 2.撤销修改的内容 3.删除文件 二 ...

  6. Git与SVN冲突解决及特性对比

    Git与SVN冲突解决 文章目录 Git与SVN冲突解决 Git与SVN对比 参考文献 https://blog.csdn.net/enlangs/article/details/44806029 当 ...

  7. 视频教程-Git 实用技巧-研发管理

    Git 实用技巧 汤青松,中国婚博会PHP工程师,擅长安全测试工具的研发及web参透测试.在处理web漏洞方面有大量实战经验,曾负责乌云众测研发,P2P平台网利宝的研发及安全建设工作;2017PHP全 ...

  8. Git安装使用以及管理多个账号

    文章目录 一.为什么要使用Git 二.Git安装 三.第一个Git账号密钥配置 四.多个Git账号密钥管理 五.Git的基本使用 开发中常用的命令 一般提交代码的步骤 分支有关 一.为什么要使用Git ...

  9. 【PMP考纲解读】【人】任务—冲突管理

    在2019版新考纲中,特别强调了"人"的占比.在之前一期的考纲解读中,我们提到人的占比大大提升,占到了42%,这在以往PMP考试中是从未有过的重大比重提升.那么从今天开始,我们将对 ...

最新文章

  1. 摄像头和相机模型和内参原理
  2. input反应慢 vue_Vue v-model实时更新带来的输入框卡顿问题
  3. Eclipse Color Themes
  4. R语言广义线性模型Logistic回归模型列线图分析(nomogram)
  5. Windows Phone开发(32):路径之PathGeometry 转:http://blog.csdn.net/tcjiaan/article/details/7469512...
  6. 29个人,耗时84天,硬刚Python,实验结果如下。
  7. C语言宏定义取得两数的最大值和最小值
  8. android webviewclient 点击事件,Android Api WebViewClient 详细解析
  9. linux操作系统字段含义,Linux系统 /etc/fstab各个字段含义解释
  10. 拼接的html点击事情不触发,关于在vue中拼接html的问题,点击事件无法执行
  11. 微信公众账号 token 验证失败 解决办法
  12. 1,通过代码自定义cell(cell的高度不一致)的基本步骤
  13. 吴恩达机器学习之单变量线性回归实现部分
  14. java ab性能测试,服务器JAVA性能测试——SPECjbb2005
  15. 和数传媒:区块链博弈论机制设计是未来关键
  16. stm8s103k3 周期 捕获_stm8s103k3的UART发送数据问题
  17. c语言 dirent,DIR和dirent结构体
  18. Mysql如何跨库查询数据?
  19. 程序员学英语之如何优雅的将单词本导出的txt文本转换为Excel
  20. Linux修改文件编码格式的三种方式

热门文章

  1. SAP系统管理员的工作
  2. 经典的SharePoint 2010升级中的多核CPU冲突问题
  3. 内置Jetty配置JSP支持过程中的常见报错
  4. 基于jquery的异步提交例子
  5. Android Studio项目目录结构介绍
  6. mybatis热加载的实现
  7. 【python】继承时注意事项
  8. Exchange 2013SP1和O365混合部署系列二
  9. 在LINUX中部署FTP服务器
  10. BZOJ 4816 [Sdoi2017]数字表格