вопрос чайника по Git
Я тут много предыстории написал, опциональной. Сами вопросы пониже.
....
На работе мы пользуемся SVN для контроля версий, а с Git я никогда нt работал, единственно вот сейчас начал пробовать, и потому вопросы...
Программа, которую мы разрабатываем (языки IEC), должна по заданию заиметь встроенный контроль версий (чтобы юзер эти IEC программы там хранил, ежели пожелает). Ну на подобии, как в ВисуалСтудию можно плагин вставить. Только тут попроще, никаких плагинов пока не надо, можно железно внедрить (по заданию минимум две) СистемыВерсий. Т.е. если возможно, то сделать какую-то абстракцию, но можно и без - а чисто разные имплементации. Выбор пал на Svn,Git, причем начальство решило что Git в первую очередь, а Svn ежели приспичит таки.
.....
Программа сохраняет эти IEC языки в запутанном формате, когда одна правка юзера может поменять сразу несколько файлов, причем эти файлы должны быть синхронны, т.е. нельзя один сохранить, а другому UNDO сделать. Это конечно плохо для СистемыВерсий. Да и сами файлы, если в них заглянуть сторонним вьювером - мало несут понятного юзеру, а часть из них вообще бинарная.
Потому для начала такое решение: коммитить всегда все изменённые файлы сразу и никогда по отдельности.
И еще, понятно, что с такими форматами файлов ни о каком MERGE и речи быть не может. Т.е. на первом этапе только такие операции:
Commit и откат к какой либо версии из истории коммитов, а потом либо Revert (т.е. опять на последнюю), либо Commit (т.е. сделать эту версию из истории - последней)
........
........
........
И вот собственно я и озвучил выше выделенным жирным ВОПРОС.
Как в Svn сделать я знаю. На примере TortoiseSVN это команды:
- Revert to this revision
- Commit
(пользуясь SharpSvn тоже без проблем).
Но как это сделать с помощью Git (а точнее Libgit2Sharp) ?
Причем, почему то мне хочется (может только потому что я новичек в Git) чтобы лишние ветки не плодились, а результат оказался на вершине ветки master, и ни один коммит из истории не пропал.