推送新的 Git 分支并随后将它们合并到原点

Pushing new Git branches and subsequently merging them on the origin

我对 Git 比较陌生,正在尝试建立某种 workflow/procedure,但不太确定如何实施它。 FWIW 我正在使用 Gitlab,尽管我认为这不重要。

目前一个 repo 只有 master/mainline 而没有其他分支。

我愿意:

  1. 在本地克隆这个项目
  2. 在本地创建一个新分支
  3. 将该分支远程提交并推送到 Gitlab 服务器(但不将其与 master 合并)
  4. 稍后发起合并请求,将远程分支与远程master合并

显然,对于 #1,我们有 git clone http://path-to-my-gitlab-repo。对于#2(在本地创建分支)我相信我想要git branch mybranchname。但是我不确定如何将分支实际推送到远程 Gitlab 服务器(因为它根本不存在),也不知道如何 - 在以后的某个时间 - 发起合并请求。

有什么想法吗?

将本地分支推送到远程存储库

您可以将本地分支推送到名为 origin 的远程存储库,方法是:

git checkout <branchname>
git push origin <branchname>

如果 <branchname> 在远程存储库中不存在 ,它将作为 push 操作的一部分创建。

由于您可能会从该分支推送新提交,因此最好通过添加 --set-upstream(或 -u) 选项:

git push --set-upstream origin <branchname>

展望未来,这将允许您通过简单地说:

将新提交推送到远程分支
git push 

使用 GitLab 创建合并请求

然后您可以使用 GitLab 网络 UI 创建 合并请求 ,如 the documentation 中所述。

第 1 步:

Clone this project locally

确保您要为您正在做的事情使用 http 协议。根据您团队的安全策略,您可能希望使用 SSH。 GitLab UI 具有在两者之间切换的按钮,因此您可以复制粘贴克隆语句。

第 2 步:

Create a new branch, locally

您可以使用 checkout 命令创建并切换到新的本地分支:

git checkout -b mybranchname

这与(使用您喜欢的任何一个)相同:

git branch mybranchname
git checkout mybranchname

第 3 步:

Commit and push that branch remotely to the Gitlab server (but not merge it with master)

您可以使用此命令推送到服务器:

git push origin mybranchname

第 4 步:

At a later time, initiate a merge request to merge the remote branch with the remote master

推送远程分支后,您可以通过 GitLab UI 发起合并请求。

找到您创建的新远程分支并寻找绿色 "Create Merge Request" 按钮。

this video 的后半部分有一个非常好的创建和管理合并请求的简短教程。