如何由多人合并GIT分支
我们使用储藏(即钻头桶) 我们团队中有多个开发人员,他们在同一GIT存储库代码中专门从事不同的模块。和模块位于不同的目录中。 还有其他团队在同一个源代码上工作(在“开发”分支中),他们可以在任何模块中进行更改 e、 g src |--模块A-- |--模块B-- 我们的团队在一个团队分支中工作,该分支是从“开发”分支中分离出来的 现在我们要将“团队”分支合并到“开发”分支,不同模块中存在合并冲突。每个模块的专门开发人员应修复合并冲突。另一个开发人员应该通过stash(Bit bucket)pull请求来审查更改 实现这一目标的最佳方式是什么? 为了进一步澄清,我想知道的是如何协同执行合并?[我知道如何使用合并工具执行GIT合并]如何由多人合并GIT分支,git,bitbucket,Git,Bitbucket,我们使用储藏(即钻头桶) 我们团队中有多个开发人员,他们在同一GIT存储库代码中专门从事不同的模块。和模块位于不同的目录中。 还有其他团队在同一个源代码上工作(在“开发”分支中),他们可以在任何模块中进行更改 e、 g src |--模块A-- |--模块B-- 我们的团队在一个团队分支中工作,该分支是从“开发”分支中分离出来的 现在我们要将“团队”分支合并到“开发”分支,不同模块中存在合并冲突。每个模块的专门开发人员应修复合并冲突。另一个开发人员应该通过stash(Bit bucket)pul
所有开发人员使用相同的登录名并修复合并冲突?在此学习如何解决该问题 或 尝试:
git合并工具
它会打开一个GUI,引导您完成每个冲突,您可以选择如何合并。有时它需要一些手工编辑后,但通常它本身就足够了。当然,这比手工做整件事要好得多
除非您安装了GUI,否则该命令不一定会打开GUI。为我运行gitmergetool
导致使用vimdiff
。您可以安装以下工具之一来使用它:meld
,opendiff
,kdiff3
,tkdiff
,xxdiff
,tortoisemerge
,gvimdiff
,ecmerge
,p4merge
,araxis
,,emerge
下面是使用vimdiff
解决合并冲突的示例过程。基于
步骤1:在终端中运行以下命令
git config merge.tool vimdiff
git config merge.conflictstyle diff3
git config mergetool.prompt false
这将把vimdiff设置为默认的合并工具
步骤2:在终端中运行以下命令
git mergetool
步骤3:您将看到以下格式的vimdiff显示
╔═══════╦══════╦════════╗
║ ║ ║ ║
║ LOCAL ║ BASE ║ REMOTE ║
║ ║ ║ ║
╠═══════╩══════╩════════╣
║ ║
║ MERGED ║
║ ║
╚═══════════════════════╝
这4个视图是
本地–这是来自当前分支的文件
BASE–公共祖先,文件在两次更改之前的外观
远程–您正在合并到分支中的文件
合并–合并结果,这是在回购中保存的内容
可以使用ctrl+w在这些视图之间导航。您可以使用ctrl+w和j直接到达合并视图
有关vimdiff导航和
步骤4。可以按以下方式编辑合并视图
如果要从远程获取更改
:diffg RE
如果您想从BASE获得更改
:diffg BA
如果您想从本地获取更改
:diffg LO
步骤5。保存、退出、提交和清理
:wqa
保存并退出vi
git提交-m“消息”
git clean
删除由diff工具创建的额外文件(例如.*.orig)
不同模块之间存在合并冲突
合并团队进行开发时不应存在合并冲突。
每个团队都应该在自己的模块专用分支中进行开发,并在“先开发”的基础上重新设置所述专用分支的基础:一旦模块团队在本地解决了冲突,则可以在该模块分支和“开发”之间进行(琐碎的)合并。
其他团队可以重新设置他们自己的模块分支的基础,确保每个团队成员重置他们自己的模块分支以考虑新的历史记录,并从那里继续。Hi@VonC,我编辑了问题“还有其他团队在同一源代码上工作(在“开发”分支中),他们可以对任何模块进行更改。”因为其他团队可以在开发分支中进行更改,所以可以合并conflicts@aKumara确切地说:这些更改应该在模块专用分支中进行(每个模块一个分支)。但是,如果这些模块被链接在一起,那么在develope上重新设置所有团队分支的基础,并要求每个团队开发人员重置他们自己的团队分支的本地克隆。冲突解决将是本地的(由团队完成),然后要开发的合并将是本地的。如果问题令人困惑,请道歉。我想知道的是协作合并的最佳方式?我知道如何单独合并。