【问题标题】:Git fetch Pull Requests from Azure DevOpsGit 从 Azure DevOps 获取拉取请求
【发布时间】:2021-05-27 03:45:00
【问题描述】:

我想使用 git 获取 Azure DevOps 中托管的存储库中的拉取请求列表。

Github has the support。 我们可以把它加到.git/config:

[remote "origin"]
  fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

但是当我为 Azure DevOps 尝试相同的方法时,它没有获取任何东西。我还尝试了git-extras 包中的git-pr

我猜他们是否有支持,路径可能与 refs/remotes/origin/pr/ 不同。他们有一个 REST API endpoint 来获取拉取请求,但我找不到任何关于使用 git 做同样事情的方法。

【问题讨论】:

  • 一种发现远程可用 refs 的方法:git ls-remote <remote or url>
  • @LeGEC,谢谢! git ls-remote 是任何遥控器的解决方案。

标签: git azure-devops pull-request


【解决方案1】:

对于 Azure DevOps,配置略有不同。您可以将以下内容添加到.git/config

[remote "origin"]
        fetch = +refs/pull/*/merge:refs/remotes/origin/pull/*

也可以在没有事先配置的情况下将拉取请求临时提取到本地分支中,如下所示:

git fetch origin refs/pull/$ID/merge:$LOCALBRANCH

获取和结帐示例(带配置):

$ git fetch origin -v
remote: Azure Repos
remote: Found 1 objects to send. (18 ms)
Unpacking objects: 100% (1/1), done.
From ssh.dev.azure.com:v3/aaaa/bbbb/cccc
 = [up to date]      main              -> origin/main
 = [up to date]      test-branch       -> origin/test-branch
 * [new ref]         refs/pull/1/merge -> origin/pull/1
$ git checkout pull/1
Branch 'pull/1' set up to track remote branch 'pull/1' from 'origin'.
Switched to a new branch 'pull/1'

临时提取和结帐示例(无需事先配置):

$ git fetch origin refs/pull/1/merge:pull/1
remote: Azure Repos
remote: Found 1 objects to send. (53 ms)
Unpacking objects: 100% (1/1), done.
From ssh.dev.azure.com:v3/aaaa/bbbb/cccc
 * [new ref]         refs/pull/1/merge -> pull/1
$ git checkout pull/1
Switched to branch 'pull/1'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多