Git: как работает git svn fetch?
Как работает git svn fetch? Где находится та ветвь, которая извлекается, чтобы я мог слиться или перебазироваться с моим мастером или другой ветвью? Откуда берутся данные, потому что git remote ничего не дает мне в моем хранилище git svn?
3 ответа:
Вот как работает
git svn fetch:При использовании
git-svnу вас нет remotes сервера svn, как у вас есть при использовании git, у вас просто есть ссылка на удаленный svn сервер в вашем локальном .файл gitconfig .Если вы хотите обновить текущую ветвь до последней редакции, вы можете использовать
git svn rebase. Но если ваш проект svn большой, вы можете оказаться в ситуации, когда вы не знаете, является ли ваша последняя версия успешной сборкой. А если ты ... хотите обновить до определенной ревизии, которая, как вы уверены, является успешной сборкой, например, вы используете Jenkins, который дает вам последнюю успешную сборку, вы должны сначала извлечь в нужную ревизию, а затем перебазировать с извлеченными коммитами.Для этого можно
git svn fetch -r <revision>. Это приведет к локальному извлечению коммитов до нужной ревизии. Для перебазирования полученных данных необходимо использоватьgit svn rebase -lилиgit svn rebase --local. Вам не нужно быть онлайн, чтобы сделать локальную перебазировку.
По умолчанию ветвь отслеживания git-svn является
remotes/git-svn, вы можете использовать ее для объединения или перебазирования своей работы поверх изменений, полученных с помощьюgit svn fetch.
Инструмент git-svn, к сожалению, на самом деле не превращает удаленные ветви SVN в настоящие git remotes. Они выглядят как пульты дистанционного управления, но на самом деле они не функционируют как пульты дистанционного управления. git-svn отслеживает ветви внутри, и я тоже нашел это немного разочаровывающим.
Однако вы можете ветвиться от ветвей SVN или сливаться с ними. Запуститеgit branch -r, чтобы просмотреть все удаленные ветви отслеживания, включая псевдо-ветви, созданные git-svn:$ git branch -r svn/SVNBranch1 svn/SVNBranch2 $ git checkout -b branch1 svn/SVNBranch1