如何在SourceTree中本地检出派生的拉取请求?

Mar*_*ers 5 git git-checkout pull-request atlassian-sourcetree

有时,拉取请求非常复杂和/或可能存在错误。在这种情况下,仅通过阅读代码来对拉请求进行抽查可能会有些不合理。在合并之前先在本地检出拉取构建该拉取请求更有意义。通过这种方式,回购维护者可以更加放心,拉取请求不会引入任何回归问题。

在此处输入图片说明

我可以很容易地从命令行检出拉取请求,但是我更喜欢使用SourceTree。我知道使用命令行非常简单明了,但是我相信只要有可能,就可以通过命令行工具使用GUI工具。SourceTree已经成为事实上的标准GUI 的git客户端窗口,因此它似乎SourceTree会对这些基本功能。但是,我尝试了许多不同的命令和对话框,但似乎无法访问SourceTree中的pull请求。

是否可以仅使用SourceTree在本地拉取请求?怎么样?

Abh*_*hek 8

将您更改.git/config为以下内容并进行提取:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git@github.com:{user}/{repo}.git
+   fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
Run Code Online (Sandbox Code Playgroud)


Bro*_*ohn 6

我在寻找不使用命令窗口的更好方法时遇到了您的问题。

我目前的做法是:

  1. 将发起 PR(拉取请求)的 fork 添加为 Remote。这可以通过 Repository -> Repository Settings -> Remote 中的设置完成,然后单击“添加”。
  2. 执行 fetch 以获取分支列表和
  3. 查看 PR 的分支。

它不提供对 PR 的直接访问权限,但它确实为我提供了更改的本地副本。我仍然通过github接受并合并或要求修改。如果 PR 发生变化,我只是将更新拉入分支。

Sourcetree 似乎将 PR 视为管理将本地更改返回到原始存储库的一种手段。


Mar*_*ers 3

无法直接在 SourceTree 中从分叉存储库检出拉取请求。

我也将这个问题转发给了atlassian问答板,并且这个问题在评论中得到了回答

据我所知,没有办法直接在 sourcetree 中执行此操作,因为 sourcetree 用于处理您本地拥有的 git 存储库,而不是用于您可以在 Bitbucket 或 Github 中访问的 PR 或远程存储库。

本质上,您必须单独克隆其他存储库,然后切换到用于拉取请求的任何分支。

有点遗憾的是,这个功能在命令行中很容易实现,但在 SourceTree 的 Gui 中却比较麻烦。