【发布时间】:2016-06-04 18:08:52
【问题描述】:
我是 TFS 和 GIT 的新手,并将现有的 Lightswitch 项目迁移到 TFS。我在 TFS 中使用 GIT 存储库启动了一个新项目并加载了我的项目,但在重命名父目录后,主文件上的某些内容几乎立即损坏。我正在尝试恢复到我最初加载的提交(我可以下载 zip 并确认它按预期工作),但最终只是添加了一些其他提交更改,这些更改并没有让我回到原来的状态。
作为前言,当我克隆到 Visual Studio 时,我相信它会提取最新的 sln,除非我从 zip 中提取。但是使用 zip,我无法推送提交(或者至少我认为)。我现在意识到 >:PI 是个白痴,应该立即开始分支,但长话短说,第一次加载到 TFS 并没有拉入 sln,因为我从本地 git 拉到远程服务器,所以我必须创建基于加载的 git 历史的新解决方案。所有这一切都是在升级 VS 2013 >> 2015 以匹配 2015 TFS 服务器之后进行的。
我尝试使用来自“git log”的长 id 的“git revert bf4d79..26aa08”,但它只是在周一添加了前两个。我觉得我走错了方向,我担心我会扼杀我的多月项目。最坏的情况是我从 TFS 中删除项目并重新开始。
顺便说一句,我是这方面的唯一开发人员并拥有它的所有管理员权限。如果你没有猜到,我是从业务方面自学的,但已经发展了几年。
任何帮助显然都非常感谢,我在这一切中学到了一些宝贵的经验。 谢谢!
这是我遇到困难的更好的图片。
******************已回答******************
感谢 Terje Sandstrøm!像魅力一样工作。
git reset --hard 4358ca58
git push -f origin master
另外,弄清楚为什么从 git 到 TFS 的初始传输没有携带 sln 文件。 sln 保存在 git 跟踪文件夹之外。
从错误中吸取教训可能很难,但绝对可以防止你重蹈覆辙。
【问题讨论】:
-
请问为什么需要从 Git 倒退到 TFS? Visual Studio 没有 Git 插件吗?
-
它确实有一个完全集成的扩展,我能够将整个历史从项目加载到 TFS。但为了内部合规,我需要在 TFS 上拥有源代码。
-
哦,但是加载现有项目很棘手。我会尝试从我猜的压缩版本重新创建一个新的 TFS 项目。
-
您是想简单地根据以前使用 Git 存储的代码初始化 Git 存储库,还是实际上也想将版本信息迁移到 TFS?
-
是的,我需要历史记录。我认为最好的选择是回滚。删除最近的并开始从 4358ca58 作为 master 分支,因为我知道这是可行的。或克隆即。从具有历史记录的本地版本覆盖。
标签: git tfs version-control visual-studio-2015