Discuss / Git / 关于git的疑问@廖老师

关于git的疑问@廖老师

Topic source

当两个人都在dev下创建自己的分支干活时,每次在dev分支中完成合并,是不是都要解决冲突呢?例如,dev合并完a分支的内容,再去合并b分支的内容,由于a,b都做了不同的修改,势必会产生冲突,每次都手动解决冲突效率是不是太低也太不友好了

我理解分成两种情况 1.a和b分支修改不同位置文件时 dev合并完a之后,b分支先git pull拉取最新代码,再使用dev合并b就没有冲突了 2.a和b修改相同位置文件时 dev合并完a之后,b分支先git pull拉取最新代码,这时候就会有冲突,手动解决一下,dev再次merge b分支就不会冲突了

请问是先把本地分支提交也就是commit,然后把本地分支合并到dev,然后在dev下拉,然后在提交到远程(push),  还是本地分支先下拉远程dev  解决冲突之后 在commit ,然后切换到dev进行 本地与dev合并在提交呢?

浪过扬帆

#4 Created at ... [Delete] [Delete and Lock User]

2个人都修改了同一个文件的内容才会引发冲突,而不是因为合并了2个不同的分支会引发冲突。

事实上,再共同开发过程中,由于大家进行的不是相同的开发任务,只要约定某些公用的文件不去提交本地的修改,大多数情况下合并都不会有冲突。

我们公司还是用CVS,效率更低。但是这种版本更新时,应该每次都先拉取服务器上的最新代码,再在此基础上提交自己的更新吧。避免将其它同事的提交给屏蔽掉。

我试了一下,master , dev ,dev1 3个分支,然后在dev修改file.txt, dev1添加了file1.txt.  在master上先合并dev,在合并dev1后,查看文件,file.txt中内容是dev中修改的内容,file1.txt是dev1中添加的内容。好神奇,感觉只要不更改同一个文件,就不会冲突。而且合并的时候只会更新做了更改的那个文件,原来的内容哪怕是已经有人修改过了,他已经合并到master分支了,此时你查看到的那个文件的内容是显示的他修改的,你这边没修改过这个文件,合并过去后也不会覆盖。好神奇。


  • 1

Reply