За последние 24 часа нас посетил 22781 программист и 1051 робот. Сейчас ищет 651 программист ...

траблы с git

Тема в разделе "Версионность, тестирование и развёртывание", создана пользователем vikrorpert, 27 авг 2016.

  1. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    ситуация следущая
    запустил gitk и выбрал пункт меню "сбросить ветку master на этот коммит"
    в итоге пропали коммиты
    что делать?
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    какие коммиты пропали? которые после точки сброса? ну так ты получил то что хотел.
     
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Как я недавно узнал, git ничего не удаляет сам, сохраняет все по хэшам и ведет лог коммитов. Поэтому можно найти любой нужный коммит
    Код (Text):
    1. git log -g
    взять его хэш и создать новую ветку, указывающую на этот коммит по хэшу
    Код (Text):
    1. git branch sos_help_me тут_хэш_коммита
    и посмотреть, что в этой ветке действительно лежит то, что нам нужно
    Код (Text):
    1. git log --pretty=oneline sos_help_me
    информация почерпнута из руководства https://git-scm.com/book/ru/v1/Git-изнутри-Обслуживание-и-восстановление-данных
     
  4. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    как оказалось git log не показывает коммиты которые находятся за указателем, только те что спереди,типа фича
    действительно заставить гит случайно чтото удалить,что уже было закомичено очень сложно
     
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    @vikrorpert ты лучше скажи, получилось чi нi )))
     
  6. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    получилось
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.236
    Адрес:
    там-сям
    вообще-то в git есть garbage collector, так что шанс потерять то что очень старался потерять, всёже можно. с некоторой вероятностью.
    --- Добавлено ---
    а до тех пор спасает
    Код (Text):
    1. git reset --hard <известный тебе хеш коммита>
    --- Добавлено ---
    откуда известный? например отсюда:
    Код (Text):
    1. git reflog
    --- Добавлено ---
    http://stackoverflow.com/questions/5473/how-can-i-undo-git-reset-hard-head1
     
  9. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    git reset --hard может отмотать вперед?
     
  10. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.236
    Адрес:
    там-сям
    не веришь?