gpt4 book ai didi

git - 如何进行多人GIT分支 merge

转载 作者:行者123 更新时间:2023-12-05 07:18:07 26 4
gpt4 key购买 nike

我们使用存储(即位桶)

我们的团队中有多名开发人员,他们专门研究同一 GIT 存储库代码中的不同模块。模块位于不同的目录中。还有其他团队在同一源代码上工作(在“开发”分支中),他们可以在任何模块中进行更改。

例如

来源

|--模块A--

|--模块B--

我们的团队在一个团队分支中工作,该分支是从“开发”分支分支出来的。

现在要 merge 'team'分支到'develop'分支,不同模块 merge 有冲突。每个模块的专门开发人员应该修复 merge 冲突。另一个开发人员应该通过 stash (Bit bucket) pull request 查看更改

实现此目标的最佳方法是什么?为了进一步澄清,我想知道的是如何执行 merge collaboratively ? [我知道如何使用 merge 工具执行 GIT merge ]

所有开发人员使用相同的登录并修复 merge 冲突?

最佳答案

在此处 https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/resolving-a-merge-conflict-using-the-command-line 了解如何解决该问题

尝试:git mergetool

它会打开一个 GUI,引导您解决每个冲突,然后您可以选择如何 merge 。有时需要事后进行一些手工编辑,但通常它本身就足够了。这肯定比手工完成整个事情要好得多。

该命令不一定会打开 GUI,除非您安装了 GUI。为我运行 git mergetool 导致使用 vimdiff。您可以安装以下工具之一来使用它:meldopendiffkdiff3tkdiffxxdiff, tortoisemerge, gvimdiff, diffuse, ecmerge, p4merge code>、araxisvimdiffemerge

下面是使用 vimdiff 解决 merge 冲突的示例过程。基于this link

第 1 步:在您的终端中运行以下命令

git config merge.tool vimdiff
git config merge.conflictstyle diff3
git config mergetool.prompt false

这会将 vimdiff 设置为默认的 merge 工具。

第 2 步:在终端中运行以下命令

git mergetool

第 3 步:您将看到以下格式的 vimdiff 显示

  ╔═══════╦══════╦════════╗
║ ║ ║ ║
║ LOCAL ║ BASE ║ REMOTE ║
║ ║ ║ ║
╠═══════╩══════╩════════╣
║ ║
║ MERGED ║
║ ║
╚═══════════════════════╝

这4个 View 是

LOCAL – this is file from the current branch

BASE – common ancestor, how file looked before both changes

REMOTE – file you are merging into your branch

MERGED – merge result, this is what gets saved in the repo

您可以使用 ctrl+w 在这些 View 之间导航。您可以使用 ctrl+w 后跟 j 直接到达 MERGED View 。

关于 vimdiff 导航 herehere 的更多信息

第 4 步。您可以通过以下方式编辑 MERGED View

如果你想从远程获取更改

:diffg RE  

如果你想从 BASE 获取变化

:diffg BA  

如果你想从本地获取更改

:diffg LO 

第 5 步。保存、退出、提交和清理

:wqa 保存退出vi

git commit -m "消息"

git clean 删除 diff 工具创建的额外文件(例如 *.orig)。

关于git - 如何进行多人GIT分支 merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58479704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com