Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在TFS上回滚GIT_Git_Tfs_Version Control_Visual Studio 2015 - Fatal编程技术网

在TFS上回滚GIT

在TFS上回滚GIT,git,tfs,version-control,visual-studio-2015,Git,Tfs,Version Control,Visual Studio 2015,我是TFS和GIT的noob,并将现有的Lightswitch项目迁移到TFS。我用GIT repo在TFS中启动了一个新项目,并加载了我的项目,但在重命名父目录后,主文件上几乎立即发生了某种损坏。我试图恢复到最初加载的提交(我可以下载zip并确认它按预期工作),但最终只是添加了一些其他提交更改,无法恢复到原始状态 作为前言,当我克隆到VisualStudio时,我相信它会使用最新的sln,除非我使用拉链。但有了zip,我无法推送提交(至少我认为是这样)。我现在意识到>:P我是个白痴,应该立即开

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

作为前言,当我克隆到VisualStudio时,我相信它会使用最新的sln,除非我使用拉链。但有了zip,我无法推送提交(至少我认为是这样)。我现在意识到>:P我是个白痴,应该立即开始分支,但长话短说,TFS的第一次加载没有拉入sln,因为我从本地git拉入远程服务器,所以我必须根据加载的git历史创建一个新的解决方案。所有这些都是在升级VS 2013>>2015以匹配2015 TFS服务器之后实现的

我尝试了“git revert bf4d79..26aa08”,它的长id来自“git log”,但它在周一刚刚添加了前两个。我觉得我走错了方向,我担心我会毁掉我的多月计划。最坏的情况是,我从TFS中删除项目,然后重新开始

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

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

这是一个更好的图片,我有什么困难

**************回答******************

谢谢Terje Sandstrøm!工作得很有魅力

git reset --hard 4358ca58

git push -f origin master
此外,我们还了解了为什么从git到TFS的初始传输没有携带sln文件。sln保存在git tracked文件夹之外

从错误中学习可能很难,但它肯定能让你避免重蹈覆辙


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

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

按如下方式执行git重置:

git复位——硬4358ca58

这将把主指针和工作区移回上面标记的提交。(例如参见)
然后强制将其推到遥控器-注意,只有在确定没有其他人在使用遥控器时才执行此操作

git-push-f源主机

(例如,请参阅)


现在你的主机回来了,遥控器是同步的。正如你自己所说,现在你可以分道扬镳,做你的实验了。

我可以问你为什么需要从Git向后退一步到TFS吗?Visual Studio没有Git插件吗?它有一个完全集成的扩展,我能够将整个历史记录从项目加载到TFS。但是对于内部的遵从性,我需要TFS上的源代码。哦,但是加载一个现有的项目是很棘手的。我将尝试从压缩后的版本重新创建一个新的TFS项目。您是在尝试根据以前使用Git存储的代码初始化Git repo,还是实际上也在尝试将版本信息迁移到TFS?是的,我需要历史记录。我认为最好的选择是太过回滚。删除最近的一个,作为主节点从4358ca58开始分支,因为我知道这是可行的。或克隆,即从本地版本(带有历史记录)进行越冬。