2016-02-23 3 views
1

Я noob для TFS и GIT и перенесла существующий проект Lightswitch в TFS. Я начал новый проект в TFS с репозиторией GIT и загрузил мой проект, но сразу же после его переименования родительский каталог сразу же поврежден в главном файле. Я пытаюсь вернуться к моему первоначально загруженному commit (который я могу загрузить zip и подтвердил, что он работает как ожидалось), но в итоге просто добавляются некоторые другие изменения фиксации, которые не возвращают меня к оригиналу.Откат GIT на TFS

В качестве предисловия, когда я клонировал Visual Studio, я считаю, что он тянет самый текущий sln, если я не вытащил из почтового индекса. Но с почтовым индексом я не могу толкнуть коммиты (или, по крайней мере, я думаю). Теперь я понимаю: PI был идиотом и должен был сразу начать разветвление, но длинный рассказ был коротким, первая загрузка TFS не тянула в sln, потому что я вытащил из своего локального git на удаленный сервер, поэтому мне пришлось создать новое решение, основанное на загруженной истории git. Все это после обновления VS 2013 >> 2015 для соответствия серверу TFS 2015 года.

enter image description here

Я попытался «мерзавец вернуться bf4d79..26aa08» с длинными идентификаторами из «журнала мерзавца», но он только добавил два верхних в понедельник. Я чувствую, что иду в неправильном направлении, и боюсь, что я убью свой многомесячный проект. В худшем случае я удаляю проект из TFS и начинаю все заново.

BTW, я единственный разработчик на этом и владею всеми правами администратора. Если вы не догадались, я сам преподаю со стороны бизнеса, но развивается уже несколько лет.

Любая помощь, очевидно, высоко ценится, и я узнал некоторые ценные уроки во всем этом. Спасибо!

Вот лучшая картина того, с чем я испытываю трудности.

enter image description here

enter image description here

************** Ответил ******************

Спасибо Terje Sandstrøm! Работал как шарм.

git reset --hard 4358ca58 

git push -f origin master 

Также выяснено, почему первоначальная передача из git в TFS не переносила файл sln. Sln был сохранен вне git tracked folder.

Изучение ошибок может быть затруднено, но это определенно мешает вам повторить его.

enter image description here

+0

Могу ли я спросить, почему вам нужно сделать шаг назад от Git до TFS? У Visual Studio нет плагина Git? –

+0

У него есть полностью интегрированное расширение, и мне удалось загрузить всю историю из проекта в TFS. Но для внутреннего соответствия мне нужен исходный код для TFS. – DarkMatterz

+0

О, но загрузка существующего проекта была сложной. Я попробую и только что воссоздаю новый проект TFS из zipped-версии, я думаю. – DarkMatterz

ответ

6

Поскольку вы являетесь единственным разработчиком этого мерзавца репо, вы можете переписать историю удаленного хранилища, то есть тот, который у вас есть на сервере TFS.

Прежде всего убедитесь, что у вас установлен Git на вашем компьютере, см. Раздел «Проводник команды», «Настройки», раздел «Git», если есть расширения для установки 3-й части, сделайте это.
Затем: Перейдите в командную строку, используйте действие под .. say Изменить концентратор и выберите команду «Открыть командную строку».

Выполните сброс GIT следующим образом: сброс

мерзавец --hard 4358ca58

Это переместит мастер-указатель и рабочее пространство обратно к фиксации вы отметили выше. (Например, см. Revert to a commit by a SHA hash in Git?)
Затем принудительно надавите на пульт дистанционного управления - обратите внимание, сделайте это ТОЛЬКО, когда вы уверены, что никто не использует ваш пульт.

мерзавец толчок -f мастер происхождения

(например, см Force "git push" to overwrite remote files)

Теперь у вас есть мастер назад, пульт дистанционного управления находится в синхронизации. И, как вы говорите сами, теперь вы можете отделиться и провести эксперименты.

Смежные вопросы