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

Как обновить 'git log' после 'git svn fetch' на голом репо?

У меня есть открытый репозиторий git -svn и он сделал git svn fetch '.

Запуск 'git log' не отображает обновления. Я уверен, что есть обновления, поскольку они отображали файлы, измененные после 'git svn fetch' и 'git svn log' также показывают их.

Обратите внимание, что я специально сделал это голой репо, поэтому "git rebase" не будет работать. Какая уместна команда для получения внесенных изменений?

4b9b3361

Ответ 1

Попробуйте git log git-svn - у меня нет открытого репо, но я только что запустил git svn fetch, а стандартный git log предоставил мне текущий (rebased) журнал, но с аргументом git -svn (который является другой ветвью, кроме мастера, который идентифицируется git branch -a в моем случае). Я получаю журнал до исправленной версии

Ответ 2

A git svn fetch добавляет новую удаленную ветку, называемую remotes/ git -svn (как видно из git branch -a).

Если вы вносите изменения в восходящий поток svn, затем запустите git fetch снова, изменения втягиваются (фактически, извлекаются) в эту ветвь, а не на master.

Итак, чтобы сделать git log (и все остальное) работать нормально на главной ветке, вам просто нужно слияние, как вам обычно нужно делать после извлечения (это то, что делает git pull, выборка и затем слияние).

Так как git svn pull не работает, вам придется объединить его вручную. Пока на главной ветке выполняйте:

git merge remotes/git-svn

Это объединит вашу ветвь мастера с ветвью git -svn, сделав все нормально.

Итак, в будущем запустите

git svn fetch
git merge remotes/git-svn

и вы снова будете в курсе восходящего репозитория.

Установка ref главной главы в git -svn head, как предложено vjangus, также сделает эту работу, но вы никогда не должны вносить изменения в удаленную ветвь.

Ответ 3

Я нашел ответ,

git symbolic-ref refs/heads/master refs/remotes/ git -svn

Благодаря комментариям Стивена Уолтера http://gsocblog.jsharpe.net/archives/12