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

Как удалить subversion remote в git?

У меня есть репозиторий git, который был создан с помощью git -svn. Теперь у меня есть сервер git, на который я нажимаю, и репозиторий svn потерян. Можно ли удалить svn remote? Как?

4b9b3361

Ответ 1

Вы можете отредактировать файл .git/config и удалить раздел, связанный с удаленным удаленным.

Линии, которые вы хотите удалить, вероятно, выглядят примерно так:

[svn-remote "svn"]
    url = url-of-svn-repository/trunk
    fetch = :refs/remotes/git-svn

Это удалит удаленный элемент из git, но вы по-прежнему будете иметь связь между коммитами git и svn-коммитами, хранящимися в .git/svn. Вы можете удалить всю эту директорию, если хотите избавиться от всех ваших svn-пультов. Если вы хотите избавиться от одного удаленного SVN и сохранить другие, вам нужно будет посмотреть структуру каталогов и удалить только те, которые связаны с удаленным удалением.

Ответ 2

Ответ Эрика правильный, но не полный. Даже после комментария Рафаэля Рапосо. Хотелось бы, чтобы я мог комментировать ответ, а не публиковать новый, но правила вы не можете комментировать, пока не достигнете 50 репутации.

Добавление:

find .git -type f -exec grep -nH git-svn "{}" \;

Показано, что у меня есть ссылки в этих двух файлах:

./.git/info/refs:4:fd34a5c...8073f3 refs/remotes/git-svn
./.git/packed-refs:5:fd34a5...cd6c33 refs/remotes/git-svn

Пока я не удалял эти ссылки, я мог видеть git -svn выполнение git log

Ответ 3

Выполняя это через большинство * nix оболочек, bash или mingw32:

cd ~/your_repo
git config --remove-section svn

или любой другой раздел, который у вас есть при просмотре конфигурации (cat .git/config). Например, следующая строка удалит тот же раздел конфигурации, который описан в решении Eric:

git config --remove-section svn-remote.svn

затем удалите все файлы svn внутри папки .git (svn, logs и refs). Это и то, что предлагает Сергей.

rm -rf .git/svn .git/{logs/,}refs/remotes/{git-,}svn/

сбор мусора только для хорошей меры:

git gc

источник/кредиты

Ответ 4

Если у вас нет локальной конфигурации, и вы хотите отказаться от использования в каталоге .git, просто клонируйте репозиторий git из git remote в новый каталог и удалите старый каталог.

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