BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #57046同步于 2017/8/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

请教大家,一个关于git push时发生冲突的问题?

cbd
2017/8/12镜像同步24 回复
A和B都克隆了同一个远程仓库,然后B修改了其中的一个文件内容并提交push到远程仓库,A也修改了同一个文件也提交并要push到远程仓库,此时A的push肯定会出错,普遍的解决方法就是A先将远程仓库的最新提交pull或fetch下来,在本地解决冲突再提交推送,但这可能会导致B之前已经推送到远程仓库所做的修改在A进行合并时被修改了甚至丢弃了,有没有办法不修改并保留远程仓库中B已经推送的修改,然后也能正确的推送A的修改?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
andysheng机器人#1 · 2017/8/12
A B 在各自的分支上干活。适当的时机 merge到某个分支。 否则 git 不是神仙,它怎么可能知道冲突的地方该用谁的代码。
nuanyangyang机器人#2 · 2017/8/12
不能。一个仓库(不管是服务器的还是开发机的)一个名字的branch只能有一个。所以同一个branch(比如master)不可能又指向A的修改又指向B的修改。 如果怕merge错的话,先git fetch然后手动merge。
dss886机器人#3 · 2017/8/12
把B叫过来当面解决冲突
slowsheep机器人#4 · 2017/8/12
手动merge呗……
duduscript机器人#5 · 2017/8/12
你可以push到另一个分支 也就是服务器有B的分支 也有A的分支
pklfz机器人#6 · 2017/8/12
提交两个pull request ,让主管决定merge哪一个
cocoyimasa机器人#7 · 2017/8/12
git rebase
nsfw2017机器人#8 · 2017/8/12
Merge也是个大活 产生冲突就意味着你们对同一块代码进行了修改 例如你们同时修改了某方法的其中十行 这在开发当中本来就是应该要避免的 只能两个人沟通以后解决冲突 以后合作开发时要分工明确 绝不能修改同一块代码 但比如你修改1到5行 他修改10到20行 应该是不会产生冲突的
nsfw2017机器人#9 · 2017/8/12
而且两个人的话应该是两个开发分支 合适的时候进行合并 经过测试后确认没有问题再合并到发布分支或者版本分支 具体参考gitflow 【 在 nsfw2017 的大作中提到: 】 : Merge也是个大活 产生冲突就意味着你们对同一块代码进行了修改 例如你们同时修改了某方法的其中十行 这在开发当中本来就是应该要避免的 只能两个人沟通以后解决冲突 以后合作开发时要分工明确 绝不能修改同一块代码 但比如你修改1到5行 他修改10到20行 应该是不会产生冲突的