在TFS上回滚GIT

Rollback GIT on TFS

我是一个noob到tfs和git,并将现有的lightswitch项目迁移到tfs。我用git repo在tfs中启动了一个新项目,并加载了我的项目,但是在重命名父目录后,主文件上的一些东西几乎立即损坏了。我正试图恢复到最初加载的提交(我可以下载zip并确认它按预期工作),但最后只添加了一些其他提交更改,这些更改无法使我恢复到原始状态。

作为一个序言,当我克隆到Visual Studio时,我相信它会拉到最新的SLN,除非我拉上拉链。但是有了Zip,我就无法推动提交(或者至少我认为)。我现在意识到了>:p我是个白痴,应该立即开始分支,但长话短说,第一次加载到tfs并没有拉入sln,因为我从本地Git拉到了远程服务器,所以我必须根据加载的Git历史创建一个新的解决方案。所有这些都是在升级vs 2013>>2015之后,以匹配2015 TFS服务器。

enter image description here

我尝试了"git revert bf4d79..26aa08"和"git log"中的长ID,但它只是在周一添加了前两个。我觉得我走错了方向,恐怕我会扼杀我的多月计划。最坏的情况是,我从tfs中删除项目并重新开始。

顺便说一句,我是这方面唯一的开发人员,拥有对它的所有管理权限。如果你没猜到,我是从商业方面自学的,但现在已经发展了多年。

任何帮助都是非常感谢的,我从中吸取了一些宝贵的教训。谢谢!

下面是我遇到困难的一个更好的画面。

氧化镁

氧化镁

***********已回答*******

谢谢你,特杰·桑斯特尔?M!工作很有魅力。

1
2
3
git reset --hard 4358ca58

git push -f origin master

同时,找出为什么从git到tfs的初始传输没有携带sln文件。SLN保存在Git跟踪文件夹之外。

从错误中学习可能很难,但它绝对会阻止你重复错误。

氧化镁


由于您是该git repo上唯一的开发人员,因此可以重写远程存储库的历史记录,这是您在tfs服务器上拥有的历史记录。

首先确保您的计算机上安装了Git,请参见团队资源管理器的"设置"部分Git,如果有第三部分Git扩展,请执行此操作。然后:转到命令行,使用..下的操作。说"更改中心",然后选择"打开命令提示"。

按如下方式重置Git:

git reset --hard 4358ca58

这将把主指针和工作区移回上面标记的提交。(例如,请参见Git中的sha哈希还原为提交?)然后强制把这个推到遥控器上-注意,只有当你确信没有其他人在使用你的遥控器时才这样做。

git push -f origin master

(例如,请参见强制"git push"覆盖远程文件)

现在您的主控形状已恢复,遥控器已同步。正如你自己所说的,现在你可以分头做实验了。