这里是场景:git - 如何处理confilicts
用户A和B具有相同的源代码。用户A进行更改=>添加=>提交=>推送。远程存储库中的源代码已更改。
用户B无需拉动即可开始更换。 (或者在用户B拉动存储库之后应用了远程存储库中的更改)然后他也想推送。此时发生冲突。我搜索了很多,并找不到任何解决方案,但手动编辑冲突。
问题:手动编辑冲突是一种有效的方法吗?特别是在一个大项目中?什么是方法?
这里是场景:git - 如何处理confilicts
用户A和B具有相同的源代码。用户A进行更改=>添加=>提交=>推送。远程存储库中的源代码已更改。
用户B无需拉动即可开始更换。 (或者在用户B拉动存储库之后应用了远程存储库中的更改)然后他也想推送。此时发生冲突。我搜索了很多,并找不到任何解决方案,但手动编辑冲突。
问题:手动编辑冲突是一种有效的方法吗?特别是在一个大项目中?什么是方法?
手动管理合并冲突可能是一项繁琐的任务。
尝试git mergetool
它将打开默认mergetool尽管您必须首先安装mergetool。 有几个mergetools它可以帮助您解决冲突,如meld
,opendiff
,kdiff3
,tkdiff
,xxdiff
,tortoisemerge
,gvimdiff
,diffuse
,ecmerge
,p4merge
,araxis
,vimdiff
,emerge
。
安装后只需执行,它会打开安装的mergetool,它会为您提供一个gui,它将引导您完成每个冲突,并且您可以选择如何合并。
如果您使用像IntelliJ这样的IDE,它们提供了内置的工具来解决合并冲突。
谢谢。此外,它似乎有一些崇高的编辑好。像'sublimerge' –
手动冲突解决方案是要走的路。冲突意味着开发人员B依赖于已更改的某些代码。这意味着他必须使其代码适应开发人员A所做的更改。即 - 解决此冲突。
有时可以自动解决冲突。有时可以通过简单地选择一个选项来解决,比如“我们在他们之后”。但即使git没有冲突,代码仍然有可能需要纠正。
例如:有一个函数some_func
接受一些参数。开发人员A将其重命名为some_new_name
,而开发人员B在一些完全独立的代码区域中将呼叫添加到some_func
。合并发生时没有任何冲突,但代码无法正常工作。
实际上,发生冲突可能比没有发生冲突更好 - 您会收到您写入的代码必须更改的预警。
可能重复[如何解决Git中的合并冲突?](http://stackoverflow.com/questions/161813/how-to-resolve-merge-conflicts-in-git) – 1615903