微软现在有自己的团队基础服务Git仓库的支持。 我对团队基础服务的帐户,我想我现有的Git仓库推到一个项目出现。
每当我尝试做搜索,我不断寻找的东西像TFS-GIT或GIT-TF。 我敢肯定,我不想这些,因为我认为这些变化为代码库在Team Foundation Server模式,这不是我想要的。
具体而言,我有我想要推到TFService现有的Git仓库。
微软现在有自己的团队基础服务Git仓库的支持。 我对团队基础服务的帐户,我想我现有的Git仓库推到一个项目出现。
每当我尝试做搜索,我不断寻找的东西像TFS-GIT或GIT-TF。 我敢肯定,我不想这些,因为我认为这些变化为代码库在Team Foundation Server模式,这不是我想要的。
具体而言,我有我想要推到TFService现有的Git仓库。
好吧,我显然是过于复杂这一点。 这里就是我所做的。
git pull c:\source\oldGitProject
这是它,它拉的所有从旧位置的变化,我可以推,高达TFService容易。
“我怎么把我的现有git仓库到TFService?”
一旦你已经宣布tfs.visualstudio.com一个混帐回购协议(见下文),那混帐回购协议网址添加到自己的本地回购的遥控器:
cd /path/to/local/repo
git remote add tfs url://tfs/git/repo
git push --mirror tfs
这将是足以推动本地回购的全部历史回到上TFS新的上游回购。
同样,这个想法是建立在上游侧(TFS)一个新的空回购,并到本地回购推到它。
(原来的答复)
如果我没有理解斯科特Hanselman的博客文章吧 :
这Git支持将需要VS2012.2(目前在预览),所以你需要安装,然后再拿到VSIX。 您可以同时更新VS2012.2被释放时,和Git的VSIX将继续通过VS库自动更新。
它是一个VS完整的源代码提供者,所以你可以用它做任何东西,不留VS,或者你可以在命令行中挂出,并用它的视觉提示,以你仓库的状态。
对于球队,你可以去到http://tfs.visualstudio.com并注册一个帐户,并获得5个用户免费。 您可以选择的Git或Team Foundation版本控制(TFVC)作为源提供者,并使用所有的Team Foundation敏捷,争球或其他模板供您ALM工具
是一个Git项目的注册过程在这里说明 ,再次指出,你所需要的Git的VSIX的“社区技术预览”上的顶部VS日更新2(VS2012.2)的“社区技术预览” 。
上面有一些很好的答案,但我发现这更容易。
屏幕上会显示出确切的Git命令,推动现有资源库, 包括网址为您独特的资源库 。 所有你需要做的就是复制并粘贴命令加入到Git的命令提示符。
git clone <repository url>
所有我们需要做的是改变现有的本地解决方案/回购的服务器目标URL。
所以:
在本地计算机,打开Visual Studio和在包管理控制台(PMC)的现有解决方案/回购运行以下命令
远程Git设置网址起源https://new.url.here
使用视图>团队资源管理器> Unsynched提交推动现有的解决方案/回购到新的项目。
这将推动当地的回购协议,其中包括所有以前提交,在云新TFS的项目。
Git的命令行FTW。
所有这一切都做的是更新在git的文件夹中的配置文件中的[url起源]属性,所以你可以只使用记事本,如果你想打开并编辑这个文件。 恕我直言,这个命令是清洁,因为你不运行的意外编辑一些其他设置的风险也不是你必须离开VS.
注意:如果选择在步推进:3被禁用,那么你可能需要执行以“脏”的源代码树的头部,从而使推命令另一本地提交。 芹苴我敢肯定会有另git的命令来完成这一点。
其中一个今天早上我发现博客链接这个文件:
http://blogs.msdn.com/b/visualstudioalm/archive/2013/02/06/set-up-connect-and-publish-using-visual-studio-with-git.aspx#publish-tfs
他们似乎有一个名为发布内部命令(这可能是使用@VonC提到的--mirror命令?)
我不知道这两种工作呢。
今天就遇到了这个问题。 VonC的答案,加入TFS为远程和使用git push --mirror tfs
,为我工作。 但是,它可能是有益的提到这个一些额外的东西。
推后,Visual Studio是仍然无法确定,这个本地回购连接到Team Foundation服务以任何方式。 所以,你仍然需要选择“连接到团队项目...”并做使用界面“克隆”。 从TFS回购将被克隆,一切只是推。 在这之后,你就可以连接到TFS,而且应该能够在克隆正常工作。
使用“--mirror”将推动所有局部引用,其中可能包括一些地方分支机构,你真的不希望有中央回购。 如果是这种情况下,“--mirror”推后,你应该使用git push tfs :<branchname>
删除从TFS一个分支,以避免其他人后来拉你的地方分支机构。
或者,代替“--mirror”,它应该有可能只是把所期望的参入TFS回购,就像使用任何其他git仓库: git push tfs <refspec>
由于TFS回购仍然是空的,在此阶段,一束分支名称的一前一后应该足够作为<refspec>
如果使用这种方法,你也可以使用使用git push -u
,这也将让你推入空回购跟踪树枝枝头。
编辑:正如爱德华·汤姆森的评论中提到,如果你原来的回购被配置为跟踪从TFS远程分支从TFS克隆应该是不必要的。 所以git push -u <refspec>
既要推动回购为空TFS回购,也让IDE识别原来的本地回购,因为它建立了跟踪。