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

时间:2015-12-22 11:23:46

标签: git merge branch gitlab

我对Git相对较新,我正在尝试建立某个工作流程/程序,并且不太确定如何实现它。 FWIW我正在使用Gitlab,虽然我认为这不重要。

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

我想:

  1. 在本地克隆此项目
  2. 在本地创建新分支
  3. 将该分支远程提交并推送到Gitlab服务器(但不与主服务器合并)
  4. 稍后,启动合并请求以将远程分支与远程主分区合并
  5. 显然,对于#1,我们有git clone http://path-to-my-gitlab-repo。对于#2(在本地创建分支),我相信我想要git branch mybranchname。但是我不确定如何将分支实际推送到远程Gitlab服务器(因为它根本不存在),也不知道如何 - 稍后 - 启动合并请求。

    有什么想法吗?

2 个答案:

答案 0 :(得分:1)

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

您可以通过说:

将本地分支推送到名为origin的远程存储库
git checkout <branchname>
git push origin <branchname>

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

由于您可能正在推动此分支机构的新提交,因此最好通过添加--set-upstream(或-u来建立本地分支与remote tracking branch之间的关系。 git push --set-upstream origin <branchname> )选项:

git push 

接下来,这将允许您通过简单地说:

将新提交推送到远程分支
$servers=Get-Content D:\List.txt
foreach ($server in $servers)
  {
    if (Test-Path "\\$_\c$\Program Files\Folder1")
    {
        Copy-Item \\127.0.0.1\D$\file1.ini "\\$_\c$\Program Files\Folder1\file1.ini"
    }
    if (Test-Path "\\$_\c$\Program Files (x86)\Folder1")
    {
        Copy-Item \\127.0.0.1\D$\file1.ini "\\$_\c$\Program Files (x86)\Folder1\file1.ini"
    }
    Restart-Service -InputObject $(Get-Service -Computer $server -Name sname1)
  }

使用GitLab创建合并请求

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

答案 1 :(得分:1)

第1步:

  

在本地克隆此项目

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

第2步:

  

在本地创建一个新分支

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

git checkout -b mybranchname

这与(使用您喜欢的)相同:

git branch mybranchname
git checkout mybranchname

第3步:

  

将该分支远程提交并推送到Gitlab服务器(但不是   将它与主人合并)

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

git push origin mybranchname

第4步:

  

稍后,启动合并请求以合并远程分支   使用远程主控

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

找到您创建的新远程分支,并查找绿色&#34;创建合并请求&#34;按钮。

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