git 实践之冲突管理
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 实践之冲突管理相关推荐
- Git 最佳实践:分支管理
5月份,为统一团队git分支管理规范,刚开始准备自己写,在网上搜了下,发现不少不错的git分支管理实践.最后我为团队选择了这个git分支管理实践 A successful Git branching ...
- Git 远程仓库分支管理
目录 目录 速查表 关联远程代码仓库 克隆远程仓库 分支管理 创建分支 切换分支 合并分支 删除分支 解决冲突 速查表 指令 作用 git branch 查看分支 git branch newBran ...
- 如何将Git用于Unity3D源代码管理?
本文翻译自:How to use Git for Unity3D source control? What are best practices for using Git source contro ...
- 【阅读笔记】精益开发实践用看板管理大型项目
[阅读笔记]精益开发实践用看板管理大型项目 参考 精益开发实践用看板管理大型项目 文章目录 [阅读笔记]精益开发实践用看板管理大型项目 一.我们如何工作(案例研究) 1.项目背景 2.组织团队 3.每 ...
- git版本控制以及分支管理
git版本控制以及分支管理--一起乘坐时光机 四.深度剖析 一.版本控制---时光机穿梭 1.熟悉版本 2.版本回退 3.管理修改 1.管理修改以及理解工作的原理 2.撤销修改的内容 3.删除文件 二 ...
- Git与SVN冲突解决及特性对比
Git与SVN冲突解决 文章目录 Git与SVN冲突解决 Git与SVN对比 参考文献 https://blog.csdn.net/enlangs/article/details/44806029 当 ...
- 视频教程-Git 实用技巧-研发管理
Git 实用技巧 汤青松,中国婚博会PHP工程师,擅长安全测试工具的研发及web参透测试.在处理web漏洞方面有大量实战经验,曾负责乌云众测研发,P2P平台网利宝的研发及安全建设工作;2017PHP全 ...
- Git安装使用以及管理多个账号
文章目录 一.为什么要使用Git 二.Git安装 三.第一个Git账号密钥配置 四.多个Git账号密钥管理 五.Git的基本使用 开发中常用的命令 一般提交代码的步骤 分支有关 一.为什么要使用Git ...
- 【PMP考纲解读】【人】任务—冲突管理
在2019版新考纲中,特别强调了"人"的占比.在之前一期的考纲解读中,我们提到人的占比大大提升,占到了42%,这在以往PMP考试中是从未有过的重大比重提升.那么从今天开始,我们将对 ...
最新文章
- 摄像头和相机模型和内参原理
- input反应慢 vue_Vue v-model实时更新带来的输入框卡顿问题
- Eclipse Color Themes
- R语言广义线性模型Logistic回归模型列线图分析(nomogram)
- Windows Phone开发(32):路径之PathGeometry 转:http://blog.csdn.net/tcjiaan/article/details/7469512...
- 29个人,耗时84天,硬刚Python,实验结果如下。
- C语言宏定义取得两数的最大值和最小值
- android webviewclient 点击事件,Android Api WebViewClient 详细解析
- linux操作系统字段含义,Linux系统 /etc/fstab各个字段含义解释
- 拼接的html点击事情不触发,关于在vue中拼接html的问题,点击事件无法执行
- 微信公众账号 token 验证失败 解决办法
- 1,通过代码自定义cell(cell的高度不一致)的基本步骤
- 吴恩达机器学习之单变量线性回归实现部分
- java ab性能测试,服务器JAVA性能测试——SPECjbb2005
- 和数传媒:区块链博弈论机制设计是未来关键
- stm8s103k3 周期 捕获_stm8s103k3的UART发送数据问题
- c语言 dirent,DIR和dirent结构体
- Mysql如何跨库查询数据?
- 程序员学英语之如何优雅的将单词本导出的txt文本转换为Excel
- Linux修改文件编码格式的三种方式