我有一个现有的git repo,我被迫放入tfs。我想使用git-tfs工具,但无法弄清楚我的生活如何做到这一点。我见过的所有例子都是从git tfs clone开始的,但我已经有了一个git repo,并想在其上运行“checkin”。
编辑:我已经尝试根据我需要的相反方案拼凑指令。我尝试创建一个空项目并将其添加到tfs,然后从git复制我的代码,但我丢失了我的历史(我不想要)。我在这里寻找的是一系列完成我需要的步骤。
答案 0 :(得分:4)
事实上,git-tfs只能通过克隆TFS存储库来工作。
我只是希望你没有很多分支机构来检查TFS,否则它会很长很无聊但可行!
首先,在tfs中创建一个空存储库。
旧解决方案(如果您想采取这种方式仍然有效...):并使用tfs克隆它。您应该能够轻松地执行此操作,并且在此新git存储库中只应该只有一个没有文件的提交。
现在,将遥控器添加到现有的git存储库,并将远程主服务器重新绑定到新存储库的初始提交。
新解决方案:使用this script
然后使用'git tfs rcheckin'提交所有历史记录。它应该很长:(
之后,如果您有要提交的分支,并且如果您拥有最新版本的git-tfs 0.17.1,请提取正确的修订并使用以下命令创建tfs分支:
git tfs branch Name_of_my_branch
并重新命名git分支的所有提交并使用rcheckin: git tfs rcheckin -i Name_of_my_branch
为你所有的分支做这件事,那应该是好的......
但是我应该补充一点,如果你有合并提交,他们将在这个过程中丢失:( 你不会拥有比你现有的git存储库更漂亮的存储库
PS:
我很遗憾你在使用git后被迫使用TFS
难道您不能使用即将发布的TFS 2012的新功能,并允许在TFS中拥有git存储库吗? http://blogs.msdn.com/b/bharry/archive/2013/01/30/git-init-vs.aspx和 http://www.hanselman.com/blog/GitSupportForVisualStudioGitTFSAndVSPutIntoContext.aspx