在TFS上回滚GIT
我是TFS和GIT的noob,并将现有的Lightswitch项目迁移到TFS。 我使用GIT repo在TFS中启动了一个新项目并加载了我的项目,但重命名父目录后,几乎立即在主文件上损坏了一些内容。 我试图恢复到我最初加载的提交(我可以下载zip并确认它按预期工作),但最终只是添加了一些其他提交更改,使我无法回到原始状态。
作为一个前言,当我克隆到Visual Studio时,我相信它会拉取最新的sln,除非我从zip中拉出。 但使用zip,我无法推动提交(或至少我认为)。 我现在意识到:> PI是一个白痴,应该立即开始分支,但长话短说,第一次加载到TFS并没有拉入sln,因为我从本地git拉到远程服务器,所以我必须创建一个基于加载的git历史的新解决方案。 所有这些在升级VS 2013 >> 2015以匹配2015 TFS服务器之后。
我尝试了'git revert bf4d79..26aa08'来自'git log'的长ID,但它在星期一添加了前两名。 我觉得我的方向是错误的,恐怕我会杀死我的多月项目。 最糟糕的情况是,我从TFS中删除项目,并从头开始。
顺便说一句,我是唯一的开发人员,并拥有所有的管理员权限。 如果你还没有猜到,我从商业方面自学,但现在已经发展了很多年。
显然,任何帮助都很值得赞赏,而且我在这一切中都学到了一些有价值的教训。 谢谢!
这是我遇到困难的更好的照片。
**************回答******************
感谢TerjeSandstrøm! 像魅力一样工作。
git reset --hard 4358ca58
git push -f origin master
另外,明白为什么从git到TFS的初始转换没有携带sln文件。 sln被保存在git跟踪的文件夹之外。
从错误中学习可能很困难,但它绝对不会让你重复它。
由于您是该git仓库中唯一的开发人员,因此您可以重写远程仓库的历史记录,即您在TFS服务器上的历史仓库。
首先确保你的机器上安装了Git,参见团队资源管理器,设置,Git部分,如果在那里安装了第三部分的git扩展,请执行该操作。
然后:转到命令行,使用..说更改集线器下的操作,然后选择打开命令提示符。
做一个git重置,如下所示:
git reset --hard 4358ca58
这会将您的主指针和工作区移回您在上面标记的提交。 (例如,请参阅在Git中通过SHA哈希恢复提交?)
然后强制将其推送到远程 - 请注意,只有在确定没有其他人使用您的远程设备时才执行此操作。
git push -f原点主
(例如,请参阅强制“git push”覆盖远程文件)
你现在已经让你的主人回来了,遥控器是同步的。 正如你自己所说,现在你可以分支并做你的实验。
链接地址: http://www.djcxy.com/p/18839.html上一篇: Rollback GIT on TFS