За последние 24 часа нас посетили 20532 программиста и 1123 робота. Сейчас ищут 785 программистов ...

Переименование коммита (не последнего)

Тема в разделе "Версионность, тестирование и развёртывание", создана пользователем виталий032, 11 окт 2019.

  1. виталий032

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

    С нами с:
    31 янв 2014
    Сообщения:
    227
    Симпатии:
    30
    Адрес:
    Владивосток
    Задача: переименовать коммит, который делал в далеком прошлом.

    Я загуглил. Вот, что нашел здесь:
    1. git rebase -i <commit hash you want to change>^
      This will open your default editor (usually vi) with a list of commits and actions for each one. By default, the action is pick.
    2. For any commit you wish to change the message, change pick to reword.
    3. Save and quit (in vi: :wq).
    4. For each such commit, you'll get an editor to edit the commit message. Change it as you see fit, save and quit.
      Once you're done editing all the commit messages, you'll return to the command prompt, and have a new tree with the updated messages.
    5. You can now upload them to github by using git push origin --force.
    Сделал по этой схеме первый раз, все нормально отработало [текущее состояние репки, которая здесь].
    На следующий день пытаюсь изменить название более раннего коммита, нежели изменял вчера.
    Процесс Rebase-инга доходит до коммита, который изменял вчера и говорит об ошибках merge-а. Я их вручную исправил. Далее ввожу git rebase --continue. В следующем коммите опять конфликт. И так далее....

    Почему возникает конфликт? Неужели так каждый раз каждый коммит до HEAD править вручную? Может есть другой способ переименовать коммит?

    Любая инфа/догадки будут полезны. Спасибо, если дочитал до этой строки.
     
    #1 виталий032, 11 окт 2019
    Последнее редактирование: 11 окт 2019
  2. виталий032

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

    С нами с:
    31 янв 2014
    Сообщения:
    227
    Симпатии:
    30
    Адрес:
    Владивосток
    Проблема решена!
    Проблема заключалась в последнем мерже (в чем конкретно я так и не понял). Просто сделал hard reset на один коммит назад. Дальше сделал несколько раз ребейс и затем форс пуш. Все отработало нормально.

    Печально то, что при просмотре истории репозитория на гитхабе этот ребейс выглядит так, как-будто сделали все коммиты после 'первого редактируемого' сегодня в момент этого ребейса. И количество коммитов увеличилось почти вдвое.

    Хотя при просмотре истории (логов) через git bash можно увидеть, что изменилось только название коммита. И, если бы я не знал, что изменили название коммита я бы и не определил, что произошёл ребейс.