【问题标题】:git fatal: repository not found remote access for Internal TFS servergit 致命:找不到内部 TFS 服务器的存储库远程访问
【发布时间】:2016-10-24 16:00:42
【问题描述】:

我们有一个 Team Foundation Server 2013 的内部托管实例,其中包含许多使用 GIT 源代码控制的项目。如果我使用 Visual Studio 2015,我可以毫无问题地克隆、推送、拉取等。但是,当我尝试使用 git 命令行与服务器交互时,git 无法与服务器通信。例如,当我尝试克隆存储库时(我 100% 肯定 url 有效),它会出错。这是输出

C:\Projects\>git clone http://tfs_server_name:8080/tfs/CollectionName/_git/SomeProject
Cloning into 'SomeProject'...
fatal: repository 'http://tfs_server_name:8080/tfs/CollectionName/_git/SomeProject/' not found

我们的 TFS 实例配置为使用集成 Windows 身份验证,因此我按照本文中的说明进行操作:https://github.com/Microsoft/Git-Credential-Manager-for-Windows/blob/master/Docs/Faq.md#q-i-thought-microsoft-was-maintaining-this-why-does-the-gcm-not-work-as-expected-with-tfs

我按照说明运行了该文章中的命令(其中 tfs_server_name 是我们服务器的机器名称,NameOfOurDomain.lcl 是我们的域):

git config --global credential.tfs_server_name.NameOfOurDomain.lcl.integrated true

这也没有解决问题。我运行了命令,试图克隆,什么都没有。我重新启动,试图克隆,没有。

我还能做些什么来让 git 对该服务器进行身份验证?

【问题讨论】:

  • 对我来说,这看起来不像是有效 git 存储库的 URL。通常我希望它以 .git 结尾。
  • @JackBracken,这个 git repo 存储在 TFS 服务器上。该 url 是直接从 [remote "origin"] 部分下的 .git/config 文件中检索的,该部分是我从 Visual Studio 中克隆存储库时创建的。另外,我不认为 .git 扩展名对于 git 存储库是强制性的,它只是一个常见的约定。 (stackoverflow.com/questions/11068576/…)
  • 你使用哪个版本的 Git?您是否输入了 TFS 的用户名和密码?
  • 我使用的是 git 版本 2.10.1.windows.1 64 位,它从不提示我输入用户名和密码

标签: git tfs


【解决方案1】:

您是否设置了任何代理设置?检查配置文件中 .gitconfig 文件中 http.proxy 和 https.proxy 的全局 git 设置。此外,请确认您没有设置任何指向代理服务器(HTTP_PROXY 和 HTTPS_PROXY)的环境变量。

大多数代理服务器不允许内部访问,所以有可能,如果您将 git 配置为指向代理,则代理服务器实际上看不到 TFS 服务器,因此 git 看不到存储库。

【讨论】:

  • 这完全是问题所在。我没有设置任何 .gitconfig 代理设置,但我设置了 HTTP_PROXY 和 HTTPS_PROXY 环境变量,所以 git 正在使用它们。删除环境变量后,我就可以看到内部服务器了。使用这篇文章,我能够设置我的 .gitconfig 文件以对除我的内部 TFS 服务器之外的所有内容使用代理。 stackoverflow.com/questions/16067534/…
【解决方案2】:

我刚刚尝试使用 Git 命令行 + TFS 2013.5,没有出现问题。

  1. 确保您使用的是最新的 Git(我使用的是适用于 Windows 的 2.10.1 64 位版本的 Git)。
  2. 在凭据管理器中删除git: http://tfsserver:8080 的凭据。
  3. 键入可以访问存储库的凭据以克隆它。

【讨论】:

  • 我安装了最新的,通过运行 git --version 确认,还是和 OP 一样的问题。
  • 我使用的版本与您使用的版本相同(2.10.1.windows.1 64bit)。我清除了凭据管理器中的所有凭据,然后再次运行 git clone。该登录提示永远不会出现。它只输出fatal: repository ... not found
  • @TwitchBronBron 你在另一台机器上试过了吗?如果你在 TFS 服务器机器上尝试,你能得到登录提示吗?
  • 我在另一台机器上试过了,还是不显示登录提示。我没有权限登录到 TFS 服务器,所以我不能在那里尝试。
【解决方案3】:

您提供的网址不正确。

您的网址:

http://tfs_server_name:8080/tfs/TeamProjectName/_git/SomeProject/

正确的网址:

http://tfs_server_name:8080/tfs/CollectionName/_git/ProjectName/

由于您提到它适用于 VS2015,因此您可以从“Visual Studio\Team Explorer\Settings\Repository Settings\Remotes”查看 URL。

【讨论】:

  • 我很肯定 url 是正确的。我刚刚在这篇文章的 url 中过滤掉了敏感信息,做得很糟糕。当它应该是 CollectionName 时,我错误地将它命名为 TeamProjectName。我已经更新了我的问题以更好地反映这一点。
  • @TwitchBronBron 那你有没有检查过这个 URL 是否和 Visual Studio 中的一样?
  • 我检查过了。我使用的 URL 确实与 Visual Studio 显示的相同。
【解决方案4】:

这有点令人费解,但它可能有助于解决问题。

在你的命令提示符下:

runas /profile /user:your_domain\your-user-id "cmd.exe"

这将打开一个新的命令提示符窗口。在新窗口中...

cd c:\projects
git clone http://tfs_server_name:8080/tfs/TeamProjectName/_git/SomeProject

【讨论】:

  • 这对我也不起作用。我仍然收到“致命:未找到存储库”错误。
猜你喜欢
  • 2022-10-23
  • 2014-03-01
  • 1970-01-01
  • 2015-01-18
  • 2016-10-15
  • 2011-06-05
  • 2019-10-24
  • 1970-01-01
  • 2014-10-09
相关资源
最近更新 更多