关于Git的问题,文件互相覆盖问题

问题1:

用户A和B,文件a,同一个branch
用户A先pull(时间为12:00),再编辑文件a,再commit和push,push时间为13:00
用户B先pull(时间为12:00),再编辑文件a,再commit和push,push时间为13:01

请问最后repo里面的文件a完全是用户B的,还是两位用户共同的修改成果都存在?

问题2

用户A和B,文件b,同一个branch
用户B提交了一个修改文件b的commit和push(时间为14:00)
用户A开始pull(时间为14:01),但是发现报错了,提示本地有commit未同步,于是把手头的文件b的修改commit掉,然后再pull,成功,然后再merge,最后push出去

请问此时repo里面的文件b,有没有包含了用户A和B两个人的修改成果?


蓝山帝景
浏览 1059回答 2
2回答

茅侃侃

问题 1:用户B 会 push 出错,原因是 repo 的提交已经领先 B 本地的仓库。解决方法如你的问题 2,B 需要先 pull,合并后再 push问题 2:repo 最后是 B 合并后的结果其实,这种问题,自己动手操作一下会了解的更清晰

犯罪嫌疑人X

问题1 都有问题2,看不懂用户B提交了一个修改文件b的commit和pull(时间为14:00)这里是pull?我怎么觉得是pushOK,如果这里是pull,那B的commit没有push,那那么A pull commit merge push ,最后远端是只有A的这些前提是a和b改的代码不冲突,如果冲突了,改了同一片代码块,就以问题1为例,B在14.01分push的时候会先提示你有新的push要先pull下来(这是正常的,不管冲不冲突都会有,我猜你可能忘写了),B在pull下来后会报冲突,要修复了这个冲突(比如修改冲突的代码块),让才能成功push
打开App,查看更多内容
随时随地看视频慕课网APP