Visual Studio无法使用两个原始URL

时间:2014-08-12 14:32:56

标签: git visual-studio-2013

我正在尝试保持同步两个托管在两个不同站点(Github和Bitbucket)的存储库跟随指南我添加了一个新的源URL到配置,现在我的.git / config看起来像这样:

[remote "origin"]
url = https://rrev@bitbucket.org/rrev/sampclient.git
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://github.com/rrev/SAMPClient.git

现在Github和Bitbucket拥有相同的提交和相同的源代码,但是当我尝试将提交推送到两个存储库时,Visual Studio仅将提交发送给Github而将Bitbucket抛在脑后。

看起来Visual Studio与两个网址不兼容,因为当我在url = https://github.com/rrev/SAMPClient.git中移动[remote "all"]进行测试时,Visual Studio会正确地将提交发送到Bitbucket,当我放回Github时url它检测到存储库位于本地存储库后面。

这是Visual Studio的限制吗?因为当我使用命令行推送更改时(使用git push),两个存储库会正确同步。

2 个答案:

答案 0 :(得分:1)

这是Visual Studio的限制。如何使用git push所有工作正常的方法。

-Anton Ego

答案 1 :(得分:1)

如果你需要两个遥控器,你需要两个遥控器。 我完全错了,git push会尊重多个网址。 我可以'告诉我这是故意还是偶然的。 According to libgit2 this is a deliberate feature of Git for exactly your situation

我的猜测是Visual Studio没有使用git命令行,而是使用诸如libgit2确认)之类的库。对于使用Git的应用程序而言,libgit2是一个更快,更可靠的选项(特别是在Windows上),而不是包装命令行。 libgit2与Git命令行没有直接的类比,特别涉及使用遥控器。 libgit2遥控器只能有一个网址it's baked into their data structure and API

我的建议是从命令行推送,或者两个有两个遥控器并记得推送到它们两个,或者决定其中一个是镜像并设置一个自动进程来同步它,或者(IMO最好)决定您不需要在冗余开发服务上维护相同的存储库。