Всем привет!
Сегодня мы разберем проблему, когда необходимо стереть всю историю комментариев, но при этом оставить все изменения в текущей ветке. Итак, поехали.
Во-первых, нам необходимо создать сиротскую ветку от текущей ветки (которую мы потом будем удалять). Пусть наша текущая ветка будет называться develop. Создадим сироту
Сегодня мы разберем проблему, когда необходимо стереть всю историю комментариев, но при этом оставить все изменения в текущей ветке. Итак, поехали.
Во-первых, нам необходимо создать сиротскую ветку от текущей ветки (которую мы потом будем удалять). Пусть наша текущая ветка будет называться develop. Создадим сироту
git checkout --orphan develop_tempВ данной ветке нет ни одного комментария, но есть все файлы, которые были в ветке develop. Теперь нам нужно добавить все файлы в нашу новую ветку develop_temp
git add -AИдем дальше. Удаляем нашу ветку-родитель (у нас же есть сирота, а у сироты не бывает родителей ;) )
git commit -am "first commit"
git branch -D developПосле этого переименовываем ветку-сироту по имени ветки-родителя
git branch -m developИ наконец зальем все в нашу репу
git push -f origin developP.S. в данном подходе есть одна проблема, при мерджинге (или ребейзе). Проблема эта выглядит как сообщение об ошибке
fatal: refusing to merge unrelated historiesПроисходит это потому, что два несвязанных проекта пытаются смерджиться. Решается эта проблема при первом мердже командой allow-unrelated-histories. Как вариант это работает вот так
1. git pull origin master --allow-unrelated-historiesДа вот собственно и все. Всем успехов!
2. git merge develop --allow-unrelated-histories
No comments:
Post a Comment