我们使用存储(即位存储桶)
我们的团队中有多个开发人员,他们专门研究同一GIT存储库代码中的不同模块。模块位于不同的目录中。 另外,还有其他团队在相同的源上工作(在“开发”分支中),他们可以在任何模块中进行更改。
例如
src
|-模块A-
|-模块B-
我们的团队在团队分支工作,该分支从“开发”分支分支出来。
现在,我们想将“ team”分支合并到“ develop”分支,并且在不同的模块中存在合并冲突。每个模块的专业开发人员都应解决合并冲突。另一个开发人员应通过隐藏(位存储桶)请求请求查看更改
实现此目标的最佳方法是什么? 为了进一步说明,我想知道如何协作执行合并? [我知道如何使用合并工具执行GIT合并]
所有开发人员都使用相同的登录名并解决合并冲突吗?
答案 0 :(得分:0)
OR
尝试:git mergetool
它将打开一个GUI,逐步引导您解决每个冲突,然后您可以选择合并方式。有时之后需要进行一些手动编辑,但通常仅此一项就足够了。这肯定比手工完成整个事情要好得多。
除非您安装一个GUI,否则该命令不一定会打开GUI。为我运行git mergetool
导致使用了vimdiff
。您可以安装以下工具之一来代替使用它:meld
,opendiff
,kdiff3
,tkdiff
,xxdiff
,tortoisemerge
,{ {1}},gvimdiff
,diffuse
,ecmerge
,p4merge
,araxis
,vimdiff
。
下面是使用emerge
解决合并冲突的示例过程。基于this link
第1步:在终端上运行以下命令
vimdiff
这会将vimdiff设置为默认的合并工具。
第2步:在终端中运行以下命令
git config merge.tool vimdiff
git config merge.conflictstyle diff3
git config mergetool.prompt false
第3步:您将看到以下格式的Vimdiff显示
git mergetool
这4个视图是
本地-这是当前分支中的文件
BASE –共同祖先,两次更改之前文件的外观
REMOTE –您要合并到分支中的文件
MERGED –合并结果,这就是保存在存储库中的内容
您可以使用 ctrl + w 在这些视图之间导航。您可以先按 ctrl + w ,然后按 j 进入MERGED视图。
步骤4 。您可以按以下方式编辑MERGED视图
如果您想从REMOTE获得更改
╔═══════╦══════╦════════╗
║ ║ ║ ║
║ LOCAL ║ BASE ║ REMOTE ║
║ ║ ║ ║
╠═══════╩══════╩════════╣
║ ║
║ MERGED ║
║ ║
╚═══════════════════════╝
如果您想从BASE获得更改
:diffg RE
如果您想从本地获得更改
:diffg BA
步骤5 。保存,退出,提交和清理
:diffg LO
保存并退出vi
:wqa
git commit -m "message"
删除由差异工具创建的其他文件(例如* .orig)。
答案 1 :(得分:0)
,并且在不同模块中存在合并冲突。
合并团队进行开发时不应存在合并冲突。
每个团队都应在自己的模块专用分支中进行开发,并首先在开发基础上重新建立专用分支的基础:一旦模块团队在本地解决了冲突,则可以在它们之间进行(简单的)合并模块分支并进行开发。
然后其他团队可以重新建立自己的模块分支基础,确保每个团队成员都重置自己的模块分支以考虑新的历史记录,然后从那里继续。