Dar*_*erz 2 git version-control tfs visual-studio-2015
我是TFS和GIT的菜鸟,并将现有的Lightswitch项目迁移到TFS.我在TFS中启动了一个带有GIT仓库的新项目并加载了我的项目,但在重命名父目录后,几乎立即在主文件上损坏了一些东西.我试图恢复到我最初加载的提交(我可以下载zip并确认它按预期工作),但最终只是添加了一些其他提交更改,这些更改没有让我回到原始状态.
作为序言,当我克隆到Visual Studio时,我相信它会拉动最新的sln,除非我从拉链拉出来.但是使用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
Run Code Online (Sandbox Code Playgroud)
另外,弄清楚为什么从git到TFS的初始传输没有携带sln文件.sln被保存在git tracked文件夹之外.
从错误中吸取教训可能很困难,但它肯定会阻止你重复它.
由于您是该git repo上唯一的开发人员,因此您可以重写远程存储库的历史记录,即TFS服务器上的历史记录.
首先确保你的机器上安装了Git,请参阅团队资源管理器,设置,Git部分,如果那里有安装第三部分git扩展,请执行此操作.
然后:转到命令行,使用下面的Action ..说更改集线器,然后选择打开命令提示符.
git重置如下:
git reset --hard 4358ca58
这会将主指针和工作区移回上面标记的提交.(例如,请参阅Git中的SHA哈希恢复提交?)
然后强制将其推送到远程 - 注意,只有当您确定没有其他人正在使用您的遥控器时才执行此操作.
git push -f origin master
(例如,请参阅强制"git push"覆盖远程文件)
你现在有你的主人,遥控器是同步的.正如你自己说的,现在你可以分支并进行实验.