git - 如何将现有的本地 git 存储库连接到 Visual Studio 2013 中的现有远程存储库?

标签 git github tfs visual-studio-2013

我刚刚升级到 Visual Studio 2013,想使用内置的 git 功能。

我有一个本地 git 存储库 - 具有各种分支和历史记录 - 我一直与其他同事一起愉快地使用远程 TFS git 存储库。

在VS2013中,我可以看到本地仓库和切换分支、提交、推送等,但是当我连接到团队项目时,它没有分支,也没有连接到本地仓库。

我可以将 Remote 克隆到一个新的本地文件夹,但不确定如何将现有文件夹链接到它。

这一切都适用于 Windows 的 GitHub 应用程序,但 VS2013 工具似乎不喜欢它。

有什么想法吗?

最佳答案

我知道这是一个老问题,但它出现在我的谷歌搜索中......

如果您的源代码尚未在 TFS 中,您将需要克隆您的空 TFS 项目(使用 Visual Studio),然后从您的其他存储库中提取代码并将其推送到 TFS(Daniel 的回答)。

如果您的源代码已经在 TFS 中,但 Visual Studio 没有将您现有的本地 git 存储库与 TFS 项目关联...

在 Visual Studio 中,连接到 TFS(即在团队资源管理器窗口中,连接到 TFS 项目。您应该能够查看工作项等,但它会提示您需要在本地克隆项目。现在,转到"file"菜单 ->“打开”->“项目/解决方案”,然后在本地 git 存储库中找到并打开解决方案文件。如果一切正常,Visual Studio 将使您仍然连接到 TFS 项目,并且您的解决方案将是开放的,它应该在将来记住这一点(所以它不应该再告诉你你必须克隆它)。

另一方面,如果 Visual Studio 在您打开解决方案时断开了您与 TFS 项目的连接(如果您重新连接到 TFS,它会关闭解决方案),则意味着它认为它们不相同团队项目。这很可能是因为服务器 URL 并非 100% 相同。这可能是两种简单的方法,因为您可能使用不同的主机名,或者它可能是“http:”与“https:”。

通过在本地存储库中执行 git remote -v show 仔细检查这一点,并将 URL 与连接到 TFS 时在 VS 中使用的 URL 进行比较。除了域名之外,确保两者都使用“http”或都使用“https”(我刚刚遇到这个问题并意识到我在 Visual Studio 中使用了“https”,但是当我之前在 git 中克隆 repo 时使用了“http” ).如果它们不同,则修复它。

更新本地 git 仓库中的 URL:

git remote set-url REMOTE_NAME REMOTE_URL

(用您的 Remote 名称代替 REMOTE_NAME,用 URL 代替 REMOTE_URL)

(或者你可以欺骗并在文本编辑器中打开 .git\config 文件并直接编辑 URL)

在 Visual Studio 中重新打开解决方案,看看它是否让您连接到 TFS。一旦 Visual Studio 发现它们是相同的服务器 URL,它应该记住它,因此当您使用团队资源管理器连接到 TFS 项目时,它不应该说您需要先克隆它并且应该出现解决方案文件的快捷方式(虽然在 VS 2015 中,当我在解决方案快捷方式更改之前切换项目时,我经常必须单击团队资源管理器顶部的刷新按钮)。

关于git - 如何将现有的本地 git 存储库连接到 Visual Studio 2013 中的现有远程存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24508630/

相关文章:

python - 在requirements.txt中包含python版本吗?

asp.net - 使用 C#6 在 TFS 中构建网站

tfs - 将程序集版本号与 TFS Buildnumber 对齐

git log pull 对象以获取 Shortstats

continuous-integration - 如何: Teamcity + GitHub

visual-studio - Visual Studio 与 GitHub : Invalid URI: The URI scheme is not valid

visual-studio - Team Foundation Server/Visual Studio - 通知文件/项目是否已更改

git - Azure 分支 PR 策略 - 要求源分支是最新的

git - TortoiseGit 与 Git 扩展

git - 恢复 git remote 意外推送的存储库更改