git-svn
будет искать дерево коммитов для коммитов предков, которые соответствуют активным ветвям SVN (ветки refs/remotes/...
, которые соответствуют ветвям в SVN).Затем он будет передавать их.
Обратите внимание, что вам не следует объединяться, а затем выполнять dcommit - модели ветвления SVN и Git не совпадают, и подобные вещи могут испортить историю SVN.Вместо этого вы должны git rebase trunk
, когда вы находитесь на ветке.(В качестве альтернативы git svn rebase
.)
Также имейте в виду, что ветвь, которую вы проверяете до перебазирования, должна быть локальной веткой.Если это не так, вы можете создать его с помощью git checkout -b local-branch-to-create remote-branch
.Тогда git rebase trunk
.
Если вы хотите раздавить все коммиты, которые были перебазированы в один, то сделайте это после перебазирования: git reset --soft trunk && git commit
.
Как только вы будете довольны коммитамикоторые теперь живут поверх транка, просто git svn dcommit
, чтобы отправить их на сервер SVN.