Подтвердить что ты не робот

Обновить git -svn список удаленных ветвей

Когда мне нужно использовать svn, я использую git -svn, чтобы поговорить с svn. Я клонировал репо с помощью стандартной строки git svn clone -s, и все удаленные ветки в это время были там.

С тех пор новая ветвь была создана, но не мной. Я хочу проверить/отслеживать эту ветвь локально. Я могу отслеживать ветвь, которую я могу видеть (с git branch -r) следующим образом:

git checkout -t -b dev remotes/development

Но это не работает с другой ветвью, поскольку она не отображается в ветке git -r

Как я могу отслеживать эту пропавшую ветвь?

4b9b3361

Ответ 1

После запуска следующих команд вы сможете увидеть новую ветку на стороне git:

$ git svn fetch
$ git svn rebase

Сначала убедитесь, что ваша ветка чиста.

Ответ 2

git svn rebase

будет перезагружать текущую ветку, и все ветки, которые вы указали, должны автоматически загружаться в вашей локальной конфигурации репозитория.

git svn fetch

будет извлекать все ветки из репозитория SVN, как описано, когда вы изначально выполняли клонирование git svn (включая новые). Это противоречит поведению

git fetch

который выбирает только те ветки, которые вы указали, как в случае git svn rebase.

Это различие в основном состоит в том, что git не может "видеть" ветки удаленных служб SVN до тех пор, пока они не будут втянуты в локальный репозиторий, а если вы клонируете репозиторий git и ветвь git -a показывает все удаленные ветки (даже те, которые не отслеживаются/не будут обновляться с помощью выборки).

Ответ 3

git svn rebase --fetch-all справится с этим, обратитесь к странице руководства:

Это выборки из SVN родитель текущей HEAD и rebases текущая (незафиксированная для SVN) работа против него.

[...]

Это работает аналогично обновлению svn или git pull

[...]

Это принимает все опции, которые git svn fetch и git rebase accept. Тем не менее, --fetch-all выбирает только текущие [svn-remote], а не все [svn-remote] определения.

: i: НО он извлекает все копии/ветки svn