--soft сбрасывает коммит так, будто git add на файлы сделан
--mixed сбрасывает коммит так, будто не было git add на эти файлы, это по-умолчанию.
--hard сбрасывает коммит и удаляет изменеия. Но, коммит доступен по своему хэшу, если он не удален gc
когда поймешь, как работать в окружении типа git-flow из консоли, в том числе с ручным разруливанием конфликта слияния - тогда и можно говорить, что освоил основы...
а решение "в лоб" - в гите заигнорить все SVN'овское, в SVNе - гитовое и вперед. Правда, и коммитить дважды придется... Ну, или пробовать хуками git'а делать автокоммит в svn, если в этом есть смысл..