创建"拉请求"在Gitlab的Sourcetree中

时间:2018-06-04 09:06:15

标签: gitlab atlassian-sourcetree

我尝试在Sourcetree中创建pull request,但它要求我设置远程项目配置。为了设置远程配置,我通过互联网搜索,找到了this。它说,它支持Stash,BitBucket和GitHub。

我的问题是,是否有可能在Sourcetree中为远程Gitlab创建pull requests?如果是,如何在Sourcetree中启用Gitlab的拉取请求?

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

作为一种解决方法,您可以转到gitlab Web实例,通常在该实例中创建合并请求,例如:

https://gitlab.mydomain.com/web/nushopweb/merge_requests

复制该网址,并将其设置为附加了#?的Stash类型主机,以使SourceTree不会将您重定向到404页面。

enter image description here

然后,当您按下“创建请求请求...”时,它将打开一个包含gitlab合并请求的浏览器窗口,如果您刚刚推送了分支,它将立即允许您创建请求请求。

生成的URL可能看起来像这样,因为#之后的部分被“忽略”了,这完全可以。

https://gitlab.mydomain.com/web/nushopweb/merge_requests#/projects/web/repos/nushopweb/pull-requests?create&sourceBranch=feature%2fq%2f77523_wishlist-page

答案 2 :(得分:0)

Here's是一个自定义操作设置,它将帮助安装用于在Gitlab中打开合并请求的快捷方式。

复制粘贴内容,以防万一这一天消失:


安装

composer global require jcid/sourcetree-merge-request-opener

文件 sourcetree-merge-request-opener

#!/usr/bin/env php
<?php

foreach (array(__DIR__ . '/../../autoload.php', __DIR__ . '/../vendor/autoload.php', __DIR__ . '/vendor/autoload.php') as $file) {
    if (file_exists($file)) {
        require $file;
        break;
    }
}

$repoPath  = $argv[1];
$iniConfig = parse_ini_file(
    sprintf(
        '%s/.git/config',
        $repoPath
    ),
    true
);
$repoUrl   = $iniConfig['remote origin']['url'];
$repoUrl   = str_replace(
    [':', 'git@', '.git',],
    ['/', 'https://', '/'],
    $repoUrl
);

$openCommand = sprintf('open "%smerge_requests/new?merge_request[force_remove_source_branch]=1&merge_request[source_branch]="$(git rev-parse --abbrev-ref HEAD) -a "Google Chrome"', $repoUrl);
exec($openCommand);

然后在SourceTree中导航到“首选项”->“自定义动作”->“添加”新的自定义动作:

现在,您可以使用设置的快捷键⌘ =轻松地从当前分支中打开一个Gitlab合并请求