Страницы

Поиск по вопросам

вторник, 9 апреля 2019 г.

Bitbucket удаление репозитория

Добрый день!
На bitbucket удаляю репозиторий, в cmd выполняю:
git reset --hard git remote rm
Создаю на bitbucket новый репозиторий с тем же именем.
git init git remote add origin git add README.md git add .gitignore git commit -m “init” git add . git commit -m “test tasks” git push -u origin --all
и снова на bitbucket все старые коммиты. где ещё я что-то забыл удалить?


Ответ

Как удалить историю коммитов в репозитории:
Локально
Как обнулить историю Git? Вопрос не совсем про это, но связанный: Если нужно удалить Git tracking (версионирование), правильно ли просто удалить папку .git/?
На удалённом репозитории
(например, Bitbucket, GitLab, GitHub и т.п.):
Пересоздавать репозиторий в принципе необязательно. Если вы уже обнулили локальную историю, вы можете просто отправить её на удалённый репозиторий с ключом -f.
git push -f origin
Внимание, это нельзя делать, если репозиторием пользуется ещё кто-то кроме вас! (подробнее о том, почему так и что за это будет.)
При этом будет заменено только содержимое ветки origin/master. Если на удалённом репозитории есть другие ветки, их можно удалить следующим образом (отдельно для каждой ветки с именем, например, branchname):
git push origin :branchname
Разумеется, если там много веток и/или тегов, то будет проще удалить и пересоздать весь репозиторий.
Что произошло, почему остались старые коммиты
Разберём последовательно все выполненные команды.
git reset --hard
Просто сбросили локальные изменения.
git remote rm
Не работает без ещё одного аргумента, вы просто не заметили ошибку. Но даже если делать так:
git remote rm origin
То удалится только запись в конфигурации локального репозитория о подключенном репозитории (remote) под именем origin
Дальше:
git init
Если эта команда выполняется в уже существующем репозитории, то она ничего не делает. Если вы хотите удалить историю изменений и начать версионирование с нуля, нужно было идти другим путём: Как обнулить историю Git?
git remote add origin
Поскольку репозиторий под именем origin уже есть в локальной конфигурации, ничего не произойдёт.
git add README.md git add .gitignore git commit -m “init” git add . git commit -m “test tasks”
Просто добавили пару коммитов в локальный репозиторий. Если на каком-то шаге изменений не было (были добавлены/индексированы файлы, не содержащие изменений), то и коммита не было.
git push -u origin --all
И запушили полученный результат на репозиторий origin. Закономерно видим там всю ту же историю коммитов, которая есть у нас локально. Посмотреть на локальную можно, например, так:
git log --oneline --graph --decorate --all

Комментариев нет:

Отправить комментарий