Git удалить локальную ветвь удалить

Я просто удалил неправильную ветку с некоторыми экспериментальными изменениями, которые мне нужны с git branch -D branchName.

Как восстановить ветку?

Ответ 1

Вы можете использовать git reflog, чтобы найти SHA1 последнего фиксации ветки. С этого момента вы можете воссоздать ветку с помощью

git branch branchName <sha1>

Изменить: Как сообщает @seagullJS, команда branch -D сообщает вам sha1, поэтому, если вы еще не закрыли терминал, это станет очень легко. Например, это удаляет, а затем немедленно восстанавливает ветвь с именем master2:

[email protected] /C/MyRepo (master)
$ git branch -D master2
Deleted branch master2 (was 130d7ba).    <-- This is the SHA1 we need to restore it!

[email protected] /C/MyRepo (master)
$ git branch master2 130d7ba

Ответ 2

Если вы знаете последний SHA1 ветки, вы можете попробовать

git branch branchName <SHA1>

Вы можете найти SHA1, используя git reflog, описанный в решении здесь.

Ответ 3

Если вы еще не нажали удаление, вы можете просто сделать:

$ git checkout deletedBranchName

Ответ 4

Если вы только что удалили ветку, вы увидите что-то вроде этого в терминале:

Deleted branch branch_name(was e562d13)

Чтобы восстановить ветвь, используйте:

git checkout -b <branch_name> <sha>

, например:

git checkout -b branch_name e562d13 

Ответ 5

Сначала: создайте резервную копию всей директории, включая каталог .git.

Во-вторых: вы можете использовать git fsck --lost-found для получения идентификатора потерянных коммитов.

В-третьих: rebase или слияние с потерянной фиксацией.

В-четвертых: всегда думайте дважды, прежде чем использовать -D или -force с помощью git:)

Вы также можете прочитать это хорошее обсуждение о том, как восстановить эту ошибку.

РЕДАКТИРОВАТЬ: Кстати, не запускайте git gc (или разрешайте ему запускать сам по себе, т.е. не запускать git fetch или что-либо подобное), или вы можете потерять свои фиксации навсегда.

Ответ 6

Спасибо, это сработало.

git branch new_branch_name sha1

git checkout new_branch_name

//может видеть мои старые проверенные файлы в моей старой ветке