如何将现有的Git存储库推送到Team Foundation Service

McK*_*Kay 41 migration git azure-devops

Microsoft现在在其Team Foundation Service上支持Git存储库.我在Team Foundation Service上有一个帐户,我想将现有的Git存储库推送到那里的项目.

每当我尝试进行搜索时,我会不断发现TFS-GIT或GIT-TF等内容.我很确定我不想要那些,因为我认为这些更改为代码存储库的Team Foundation Server模型,而这不是我想要的.

具体来说,我有一个现有的Git存储库,我想推送到TFService.

McK*_*Kay 31

好吧,我显然过于复杂了.这就是我做的.

  1. 在TFService中创建了一个新项目
  2. 在Visual Studio中连接到该项目
  3. 在Visual Studio中克隆该项目
  4. git pull c:\source\oldGitProject

就是这样,它从旧位置取消了所有的变化,我可以轻松地将其推送到TFService.


Von*_*onC 21

"我如何将现有的git存储库推送到TFService?"

一旦你在tfs.visualstudio.com上宣布了一个git repo(见下文),就把git repo url添加到你自己的本地仓库的遥控器上:

cd /path/to/local/repo
git remote add tfs url://tfs/git/repo
git push --mirror tfs
Run Code Online (Sandbox Code Playgroud)

这足以将本地仓库的完整历史记录推回到TFS上的新上游仓库.

同样,我们的想法是在上游端(TFS)创建一个新的空仓库,并将您的本地仓库推送到它.


(原始答案)

如果我理解Scott Hanselman的博客文章:

这个Git支持将需要VS2012.2(目前处于预览状态),因此您需要先安装它,然后获取VSIX.您将能够在VS2012.2发布时更新这两个版本,并且Git VSIX将继续通过VS Gallery自动更新.

它是VS的完整源代码提供程序,因此您可以在不离开VS的情况下使用它来执行大多数操作,或者您可以在命令行中闲逛并使用它来提供有关存储库状态的可视提醒.

对于团队,您可以访问http://tfs.visualstudio.com并注册一个帐户并免费获得5个用户.您可以选择Git或Team Foundation版本控制(TFVC)作为源提供程序,并为ALM工具使用所有Team Foundation敏捷,Scrum或其他模板

这里说明了Git项目的注册过程,再次指出您需要在VS 2012 Update 2(VS2012.2)"社区技术预览"之上进行Git VSIX"社区技术预览".

TFS中的Git项目

  • 我的问题不是"如何开始在TFService中使用git进行新项目?",而是"我如何将现有的git存储库推送到TFService?" (2认同)

Ric*_*hur 9

上面有一些好的答案,但我发现这更容易.

  • 创建本地Git存储库.(或者在我的情况下,我将我的SVN存储库转换为Git.)
  • 转到visualstudio.com并创建新项目,将Git指定为源控件.
  • 单击VisualStudio.com中新项目中的"代码"菜单选项.
  • 屏幕将显示推送现有存储库的确切Git命令,包括唯一存储库的URL.您所要做的就是将该命令复制并粘贴到您的Git命令提示符中.

    git clone <repository url>


ris*_*ism 5

我们所需要做的就是更改现有本地解决方案/ repo的服务器目标URL.

所以:

  1. 在云(TFService)中,创建一个新项目并获取它的URL.
  2. 在本地计算机上,在Visual Studio中打开现有解决方案/存储库,然后在程序包管理控制台(PMC)中运行以下命令

    git remote set-url origin https://new.url.here

  3. 使用View> Team Explorer> Unsynched Commits将现有解决方案/ repo推送到新项目.

这将把本地仓库(包括所有先前的提交)推送到云中的新TFS项目.

Git命令行FTW.

所有这一切都是更新.git文件夹中找到的配置文件中的[url origin]属性,因此如果要打开并编辑此文件,可以使用记事本.恕我直言这个命令更干净,因为你不会冒不小心编辑其他设置的风险,也不必离开VS.

注意:如果禁用了步骤3中的选项,则可能必须执行另一个本地提交,以便"弄脏"源树的头部,从而启用push命令.我确信还会有另外一个git命令来执行此操作.