Сообщения коммита теряются, если моя единственная ветвь была сброшена до более раннего коммита, а затем принудительно выдвинута? - PullRequest
0 голосов
/ 13 января 2019

Если у меня есть только ветвь master, и я возвращаюсь к предыдущему этапу с последующим принудительным обновлением, теряются ли эти сообщения о фиксации после запуска git gc?

1 Ответ

0 голосов
/ 13 января 2019

Не сразу. По умолчанию Git хранит то, что называется reflog, который отслеживает историю каждой ссылки (включая ветви) в течение 90 дней. До тех пор, пока не истечет срок действия записи reflog, ссылающейся на эти коммиты, Git будет продолжать хранить объекты, на которые они ссылаются, включая объект фиксации, который содержит сообщение фиксации. Только после этого git gc очистит их.

Если вы хотите найти бывшие коммиты в вашей ветке master, вы можете запустить git reflog master, чтобы найти статус этой ветки в каждый момент времени. Затем вы можете найти хеш коммита для коммита, который вы хотите, убедиться, что это тот, который вам нужен, с помощью git show, и, если необходимо, создать из него новую ветвь с git checkout -b.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...