我想看看TFS如何适用于我的指挥。因此,我想将我们当前的GIT存储库移动到TFS数据库中。我们使用GIT是因为它具有流行的分支支持,因此我想使用TFS 2010来解决这个问题。
现在的问题是,如何将我们的GIT Repo导出到TFS。显然这是某种脚本。是否有人完成了这项任务?有什么建议吗?
谢谢。
现在的问题是,如何将我们的GIT Repo导出到TFS。显然这是某种脚本。是否有人完成了这项任务?有什么建议吗?
谢谢。
微软现已推出他们自己的GIT <--> TFS扩展: GIT-TF
这使得可以从TFS拉取新的GIT存储库或配置以允许GIT向TFS进行推送,这正是你想要做的:
(来自文档)
对于一个正在使用现有Git repo的团队,使用Git-TF将变更共享到TFS的开发人员将使用以下工作流程。
# Configure the existing repo's relationship with TFS
git tf configure http://myserver:8080/tfs $/TeamProjectA/Main
# Fetch the latest changes from TFS and merge those
# changes with the local changes.
# Note, merging is important when working in a team configuration.
# See "Rebase vs. Merge" below.
git tf pull
git commit -a -m "merge commit"
# Check in the merge commit as a single TFS changeset
git tf checkin
# Push the merge commit to the origin
git push
此外,可以使用现有的开源GIT-TFS解决方案(仅限Windows,Microsoft的解决方案使用Java且跨平台),在Git到TFS 2008单向迁移(带有历史记录)的答案中有描述。
git log --pretty="'%%H',%%ci - %%s" --reverse > commits
tf workspace temp /new /s:http://{TfsInstance} /i
tf workfold /map %2 . /workspace:temp
FOR /F "tokens=1* delims=','" %%a IN (commits) DO git checkout %%a && tfpt online /recursive /exclude:.git*,commits,*.obj,*.exe,_ReSharper*,obj,debug,*.user,*.suo,Bin /adds /deletes /i && tf checkin /author:"{AuthorName}" /comment:"%%b" /i
tf workspace temp /delete /i
{TtsInstance}
).{AuthorName}
),注释将包括来自git的时间戳(不幸的是,您无法更改检入时间而不更改TFS服务器的时间,我建议不要这样做)和原作者的姓名。这个方法可以正常工作,但是分支将无法被保存。因为当时这不是重要的因素,所以我没有花时间去解决分支问题。
希望这可以为某些人节省一些时间!
Thumbs.db
添加到了 tfpt 的排除列表中。我已经从 git 历史记录中删除了它,因为在我包含 .gitignore 文件之前,它是被意外添加的,并且在运行 .bat
文件时会收到错误提示。 - E-rich这是一个老问题,也许没有人再寻找答案了,但现在它变得更容易了。
在 TFS 中创建一个团队项目,并将 Git 作为源代码控制
获取项目的 Git URL。它看起来像这样... https://YOURPROJECTS.visualstudio.com/DefaultCollection/_git/PROJECTNAME
进入命令行并执行以下命令。
git remote add origin https://YOURPROJECTS.visualstudio.com/DefaultCollection/_git/PROJECTNAME
git push -u origin --all
以上步骤应该就足够了。