可以使用 GIT 访问哪些 TFS 2018 存储库?

What TFS 2018 repos can be accessed using GIT?

我正在处理连接到我的 Windows 自托管代理的 Azure 管道。
我知道我可以访问我存储在 Intranet TFS 2018 服务器上的项目,但我一直遇到“身份验证失败”错误。

是否取决于 TFS 中的项目类型?
我以前从未使用 Git 连接到我在 VS 2019 中的项目。 在机器上,在我使用 VS2019 处理这个项目的同一帐户下,我尝试了这些命令:

git clone https://tfs.myCie.com/DefaultCollection/myProject/

> Result:   Cloning into ' myProject '... 
> fatal: repository 'https://tfs.myCie.com/DefaultCollection/myProject/' not found

git clone https://user:<PAT>@tfs.myCie.com/DefaultCollection/myProject/

> Result:   Cloning into ' myProject '... 
> fatal: Authentication failed for 'https://user:<PAT>@tfs.myCie.com/DefaultCollection/myProject/'

我目前属于以下组:此 TFS 项目中的“Contributors”和“Project Administrators”。

我想知道问题出在哪里,会不会是 git 代理错误?
会不会是 TFS 访问权限错误?
会不会是项目类型的问题,可能TFS中的某些项目无法从Git访问? 是否需要在服务器上启用基本身份验证?

更新 1

在第一次尝试创建一个管道来获取本地 TFS 实例上的源时,它没有工作,我怀疑是因为 git,在代理上配置为使用代理并且代理不允许连接到内部 TFS 服务器。

我想解决这个问题并创建一个不获取源的管道,但是 运行s 一个脚本来克隆代理上的 repo,然后构建它:

由于管道中的脚本无法正常工作,我在我的电脑上的命令提示符下尝试了它,其中 VS2019 确实连接到“repo”。

你可能有一点说它看起来不像一个 repo,我从未使用过 Git,我曾经打开 Visual Studio,打开团队资源管理器,select我的项目并进行签出、签入。

直到今天我才注意到 Team Explorer 显示名称:Azure DevOps Server 但我知道后面是 TFS 2018 服务器:

我知道我可以使用 Git 从我的 TFS 服务器克隆“repo”,但可能没有涵盖这种情况,这就是我问几个问题的原因......因为我什至不确定是什么我想做的是可能的,你问我得到的克隆回购 URI 是什么,但我找不到克隆回购 URI :(

更一般地说,我被要求为我们所有的项目创建 Azure DevOps Pipelines,它都必须 运行 在 Windows 自托管代理上,我们在 GitHub,在 Azure Repos 和这个本地 TFS 服务器上。我有前两个管道,但我无法建立与 TFS 的连接。

更新 2

谢谢你的指点,我好像没有UI跟你展示的一样,或者我没找到但我确实找过...

这是我在 TFS 中打开项目时看到的内容:

要找到 Git 克隆 URL,您可以登录 TFS 2018,然后导航至 Project ->Code -> Files,您可以获得 Git 克隆 URL在克隆选项

yaml管道的Resources字段目前不支持在TFS中获取repo。

所以在Azure Devops Pipelines中,可以使用以下两种方法获取TFS中的git repo。

  1. 使用Git克隆命令:您可以在URL:
  2. 中添加PAT

例如:

pool:
  name: Default

workspace:
  clean: all
steps:

- checkout: none

- task: CmdLine@2
  inputs:
    script: |
      cd $(Build.sourcesdirectory)
      
      git clone -b master http://<PAT>@tfs2018:8080/tfs/DefaultCollection/_git/<RepoName>
  1. 您可以创建一个其他 Git 服务连接并使用其他 Git option.This 方法只能在经典编辑器中使用。

注意:您需要确保Windows自托管代理可以访问TFS2018。也就是说,agent所在的本机需要能够访问TFS2018。

更新:

对于 TFVC 回购:

您可以尝试使用以下命令:

cd $(build.sourcesdirectory)
tf vc workspace /new ... 
tf vc workfold /map $/Project/Folder $(build.sourcesdirectory) 
tf vc get . /recursive