#git #git-commit
#git #git-commit
Вопрос:
Я работал с отделенной головкой дольше, чем должен был предоставить. Я был ленив и откладывал слияние обратно в ветку, в которой я изначально работал, и, наконец, решил, что мне давно пора сделать то, что я должен делать.
Поэтому я предположил, что лучший способ — следовать той же процедуре, что и всегда. Сначала я извлек, а затем удалил самые последние изменения в этой ветке, исправил конфликты слияния, а затем объединил ветку, с которой я собирался объединиться, в коммит, который у меня был первым. (оглядываясь назад, я даже не уверен, что я сделал здесь после более тщательного обдумывания). Затем я записал идентификатор коммита для коммита, который я недавно сделал, со всей моей текущей работой, а затем проверил ветку, в которую я собирался ее объединить……….. Вот тогда мой желудок ударил меня по ногам. Коммит исчез. Я попытался выполнить поиск идентификатора в SourceTree и ничего не получил… Я нигде не могу найти свою работу.
Я пропустил всю эту работу или есть какой-то способ вернуть ее ?.. У меня сложилось впечатление, что как только Git совершил коммит, он всегда был там, как кнопка сохранения.
Комментарии:
1. проверьте, остались ли ваши изменения?
2. @leoOrion Они не
3. вы зарегистрировались в ветке, в которую собирались слиться, но еще не слились с rite? Проверьте свою предыдущую ветку и посмотрите, там ли она?
4. @leoOrion Я думаю, что я недостаточно четко сформулировал проблему. Я не работал в ветке. Некоторое время назад я внес изменения, которые нарушили мой код. Итак, пока другие исправляли это, я проверил коммит прямо перед этим слиянием и просто поленился вернуться в ветку. Я попытался объединить коммит в ветку. Я работаю с SourceTree в качестве графического интерфейса для git, и он не показывает коммит с идентификатором, который я сделал около 15 минут назад. Последний коммит, который он показывает, был два дня назад.
Ответ №1:
Для всех изменений, которые были зафиксированы в какой-то момент, git
есть большая встроенная система безопасности: reflog.
Выполнить :
git reflog
Вы должны увидеть коммиты, которые вы ищете там.
Комментарии:
1. Я смотрю на это сейчас. Есть ли способ отсортировать или узнать, как его сортировка фиксируется? Я не вижу идентификатор, который я записал сразу, или сообщение о фиксации.
2. Я имею в виду, если бы я увидел идентификатор, существующий до этого, есть ли в любом случае идентификатор, который просто «исчезнет»?
3. Я (по глупости) полагался на SourceTree для навигации. Я только что попробовал простой «git checkout <идентификатор фиксации>» в bash, и я думаю, что я спасен! Мне все время напоминают, почему я предпочитаю bash. SourceTree подходит для базовых вещей, но я всегда возвращаюсь к bash.