Я знаю, я знаю, git revert
но я только что узнал, что он не ведет себя точно так же, как svn revert
- по крайней мере, не в Visual Studio 2015 или, возможно, не в TortoiseGit. Я объясню:
Я новичок в VS2015 и новичок в Git. Когда я обнаружил, что VS2015 имеет встроенную Git-интеграцию, я попробовал это. Однако я работал над несколькими файлами и был готов зафиксировать только один из них. К сожалению, фильтр, который я применил на панели Team Explorer, не применился к тем файлам, которые были зафиксированы (я думаю, именно поэтому заголовок кнопки называется «Commit All»). Вместо этого он передал все «грязные» файлы - упс!
Обращаясь к TortoiseGit, чтобы просмотреть журнал моего репо, я выбрал самый последний (локальный) коммит и отменил его с помощью «Отменить изменения этого коммита». Я ожидал, что эта операция вернет файлы, над которыми я работал, до «грязного» состояния, в котором они находились до того, как я зафиксировал, как, например, SVN Revert, но, к моему удивлению, операция вернула мои локальные файлы в предыдущая версия репо , а не в том состоянии, в котором они находились до того, как я их совершил.
Конечно, я смог получить свою работу, потому что все это было в ревизии «все файлы», которую я изначально зафиксировал. Я просто начал копировать каждый файл из него в его каталог. Но чего мне здесь не хватает? Есть ли функция Git, которую я должен был использовать вместо Revert?
--mixed
это значение по умолчанию, а список изменений (AFAIK) является относительно новой вещью - раньше это требовалосьgit commit -v
, не так ли?--mixed
по умолчанию. Я добавил если для уточнения. Список изменений (ну, действительно, измененных файлов) всегда был там IIRC. У меня нет более старой версии Git, чтобы проверить это.