关于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两个人的修改成果?

阅读 4.1k
2 个回答

问题1 都有
问题2,看不懂

用户B提交了一个修改文件b的commit和pull(时间为14:00)

这里是pull?我怎么觉得是push
OK,如果这里是pull,那B的commit没有push,那那么A pull commit merge push ,最后远端是只有A的

这些前提是a和b改的代码不冲突,如果冲突了,改了同一片代码块,就以问题1为例,B在14.01分push的时候会先提示你有新的push要先pull下来(这是正常的,不管冲不冲突都会有,我猜你可能忘写了),B在pull下来后会报冲突,要修复了这个冲突(比如修改冲突的代码块),让才能成功push

问题 1:

用户B 会 push 出错,原因是 repo 的提交已经领先 B 本地的仓库。解决方法如你的问题 2,B 需要先 pull,合并后再 push

问题 2:

repo 最后是 B 合并后的结果


其实,这种问题,自己动手操作一下会了解的更清晰

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进