更新Github内容,Commit成功(有冲突)

备用知识:
    本地执行Sync同步时,若发生冲突,则提交的时候,会发生merge,会生成一个merge的文件。该文件记录了冲突发生的位置、冲突标志、冲突内容。


1- 采用PC下的Github客户端、Github浏览器详细分析整个过程

    当现在分别有两个开发人员 peter 和 bill 携手开发程序,他们都需要修改同一个文件,更巧的是他们两个人修改的内容是文件中相同的位置。
    假设 bill 率先完成文件的修改,他将修改后的文件commit到Github浏览器上。之后,过了5分钟后,peter也修改完了文件的内容,然后在PC的本地Github客户端点击sync按钮进行同步,但是此时发生了错误,如下图所示:(改图表示发生了冲突)
Alt
    此时,会由于发生冲突,因此会发生merge并生成一个合并后的文件,其中冲突部分的内容如下图所示:
Alt
说明:这种冲突不是Github规则能解决的问题,而是程序员之间意见不统一造成的,需要程序员之间进行协商,达成一致的协商结果后,修改并提交。


2- 采用命令详细分析整个过程
  1. 冲突,就是对同一个文件进行了操作;而A、B分别修改了file1、file2并不会发生冲突。
  2. 发生冲突时,最后提交的时候,会发生merge
  3. 解决冲突的方法是:二者进行协商沟通

场景一:git pull没有问题,但是push的一刹那,代码与工友的push冲突了。这是极小概率事件,无能为力。一般为了防止此问题的发生,在每个员工提交代码之前都进行提前通知其他员工。

场景二:github远程仓库代码(别人修改后Commit到github浏览器) 和 本地代码 冲突

  1. 手动在github上修改readme.md的代码:添加几行字符串
  2. 在本地使用vi修改readme.md的代码:添加几行字符串
  3. 此时,在本地git status仅仅提示readme.md修改了。
  4. 就算执行git diff readme.md也只是显示本地修改了代码,但是并看不到github远程仓库的手动修改情况
  5. 执行git pull,发现并没有得到提示:Already uo-to-date,而是出现下面内容(说明:github远程仓库和本地代码修改发生冲突,此时使用cat readme.md发现代码发生了合并)
    在这里插入图片描述
    总结:执行git pull后,结果导致代码发生了merge,需要程序员去沟通应该保留谁修改的方式。
  6. 协商并保留了代码后(即冲突解决后),重新执行git add/commit;之后再执行git pull将会提示Already up-to-date;说明可以执行git push提交代码,执行git push提交代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值