2017-01-10 5 views
0

Я должен передать сервер TFS серверу GIT (Bitbucket).Очистить репозиторий Git

В настоящее время мы используем git-tfs, но перед выполнением тестов мы выполняем некоторые тесты (например, настраиваем jenkins, проверяем, что все правильно передано).

Проблема в том, что теперь кажется, что я не могу запустить команду git push, потому что у меня есть репозиторий, который уже заполнен множеством материалов из предыдущего запуска.

Есть ли способ «сбросить» репозиторий (например, если я никогда не совершал фиксацию)? Без его удаления?

Я нашел это: Clear git repository on Bitbucket?, но проблема в том, что я выполняю 6 лет работы с более чем 60 филиалами, поэтому я не могу просто их чистить один за другим.

Я также не могу просто удалить репозиторий, мы уже настроили много вещей (крючки, подключения к jenkins, ...).

+0

* ... с более чем 60 ветвями, поэтому я не могу просто их чистить один за другим. * В чем проблема с его написанием? – Leon

+0

@Leon Я открыт для предложения, но, возможно, предыдущий импорт не работал должным образом или, возможно, он оставляет некоторые вещи, которые не ясны (а не сбор мусора)? – J4N

ответ

1

Это действительно зависит от версии TFS/bitbucket. Вы можете просто удалить все ветви и теги и сбросить Master до самого первого фиксации, чтобы получить чистый список. Но в зависимости от вашей версии сервера TFS это может фактически не вызвать сбор «мусора». Я не уверен в политике сбора мусора на BitBucket.

Сборник мусора Git был представлен в обновлении TFS 2015. 3 и более старые версии фактически не будут очищать что-либо на сервере, даже если вы удалили все ссылки на него.

Вы можете легко запустить процесс очистки. используйте git fetch --all, чтобы убедиться, что ваше местное репо имеет всю информацию о филиале, а затем используйте git branch --list -r, чтобы перечислить все удаленные ветви. С этим вы можете легко выполнить сценарий, удалив эти ветви и нажав их удаление на сервер.

Then use git update-ref refs/heads/master a12d48e2 (insert your own commitish) to reset the master.

Тогда git push --force --all отправить все обратно на сервер.

+0

Привет, не знаю, почему важна версия TFS, но в настоящее время это TFS 2015. Проблема, с которой я столкнулся с git -fetch -all': она изменит репозиторий git, который я только что закончил, чтобы создать после 8 долгие часы, нет? Как удалить только удаленную ветку, а не локальную? – J4N

+0

Просто сделайте это в новом репо ... – jessehouwing