合并多个 Git 分支并将它们推送到远程服务器 (Gitlab)

Merging multiple Git branches and pushing them to the remote server (Gitlab)

我是 Git (Gitlab) 分支和合并的新手,开箱即用,当然,有一个相当复杂的场景。

一个 repo ("myapp") 有一个名为 "cleanup" 的功能分支。我被要求分支 that 在本地分支,添加一些更改,将这些更改与 cleanup 合并,然后将 cleanup 与主线合并(origin “?)。所以我克隆了 myapp,切换到 cleanup 分支,然后分支它并调用那个分支 mycleanups:

origin/mainline (exists on remote Gitlab server as well as locally)
    +---> cleanup (exists on remote Gitlab server as well as locally)
          +---> mycleanups (just exists locally)

所以现在我要做的是:

  1. 合并 mycleanupscleanup,希望只在本地

  2. 然后将该合并(mycleanups+cleanup)推送到cleanup分支(除非这一步是不必要的)

  3. cleanuporigin 合并并推送这些更改。 应该 需要在 Gitlab 上进行某种“合并请求”(从 cleanuporigin )...

    我很乐意合并,但不确定我应该在本地严格执行哪些操作,哪些应该推送到远程 Gitlab 服务器。有人可以提供一组具体步骤(带有示例 git 命令!)说明我如何在本地和远程实现此多分支合并吗?

执行:

git checkout cleanup

git merge mycleanup

git pull origin cleanup

git push origin cleanup

听起来 mycleanup 分支是不必要的。

你已经得到了你的克隆,所以你将检查 cleanup 分支(它创建远程分支 cleanup 的本地副本):

git checkout cleanup

进行一些更改。提交它们。

此时,您的本地分支领先于远程分支。您可以使用 git status 查看此信息。

在此之后,运行 git push。如果在此期间没有其他人推送,它将接受它。否则,它将拒绝它并且您需要从远程引入更改(合并 - git 拉)。

在检查清理时,它会将其设置为跟踪同名的远程分支。这是为了将来的拉和推 - 所以它知道从哪里推到哪里。

在此之后,在 Gitlab 中,它应该会在 Merge Requests 页面中显示最近推送的分支。然后您可以点击 "New Merge Request",它将提交给项目所有者审查并在他们空闲时合并到 mainline