Что происходит в дочерней ветке, если я удаляю родительскую ветвь в git
Я планирую переименовать ветвь в моем репозитории git. Я узнал, что простой способ сделать это - создать новую ветку из этой ветки и дать ей желаемое имя.
После этого я хочу удалить старую ветку (родительский). Но я боюсь, что потеряю данные в своей новой ветке, если я это сделаю.
Что происходит с коммитами, первоначально внесенными в родительскую ветку, если я удаляю эту ветвь?
Ответы
Ответ 1
Что просходит? ничего такого.
Если вы создаете ветку, где находится другая, вы можете "удалить" эту другую ветку, ничего не потеряв. Ветвь (HEAD) - это просто указатель на коммит.
До тех пор, пока на эти коммиты ссылается ветвь HEAD (или они являются частью предков ветки HEAD), они не теряются.
И даже если на них больше не ссылается ни одна ветка или тег, они все еще находятся в локальном reflog
(по умолчанию) в течение 90 дней.
Но, глядя на справочную страницу для git branch
, это выглядит проще:
git branch (-m | -M) [<oldbranch>] <newbranch>
С:
-m
--move
Переместить/переименовать ветку и соответствующий reflog.
-M
Переместить/переименовать ветку, даже если новое имя ветки уже существует.
Ответ 2
Просто используйте git format-patch origin -o {output_folder}
.
После получения всех патчей перейдите к мастеру и создайте новую ветку.
Затем примените эти патчи так: git am {output_folder}/{patch_name}.patch
.
Затем, проверив, что вы не git Branch -D {name_old_branch}
информацию, вы можете удалить старую ветку с помощью git Branch -D {name_old_branch}