Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Как сделать rebase для codereview.qt-project.org что бы убрать статус Merge Conflict?



  • Делаю изменения для Qt Creator https://codereview.qt-project.org/c/qt-creator/qt-creator/+/275376, и пока правил замечания, там написалось что Merge Conflict. Там сказали что нужно rebase сделать. Подскажите как это сделать для тамошнего Gerrit, а то я замучился уже разбирать английский?



  • Без паники!

    git fetch
    git rebase origin/master



  • Спасибо, к текущей минуте уже сам разобрался. Хотя прежде чем разобрался, успел пару раз запутать бранчи и восстанавливал из предусмотрительно сделанного архива.

    git fetch
    git rebase
    после исправляю конфликты про которые сообщает rebase, их он прямо в исходниках оставляет пометки, и на каждый исправленный файл делаю:
    git add <file>
    и после:
    git rebase --continue
    последние два шага потребовалось проделывать дважды.



  • Хотя прежде чем разобрался, успел пару раз запутать бранчи и восстанавливал из предусмотрительно сделанного архива.

    Так делать не надо. Если какая-то операция (merge, rebase, reset и т.п.) с историей прошла не так, как хотелось, всегда можно открыть git reflog и вернутся к "хорошему" состоянию истории просто отресетив ветку на нужный хэш коммита. Т.е. бэкапы находятся внутри самого гита и не надо делать никаких архивов. Но через две недели (по-умолчанию) сборщик мусора начнет удалять устаревшие "бэкапы", поэтому откат лучше сделать сразу же.

    Для перестраховки перед рискованным изменением можно сделать "бэкапную" ветку, например если ты хочешь отребейзить ветку branchname и подозреваешь, что могут быть пробемы, ты можешь сделать

    git checkout branchname
    git checkout -b branchname.bak
    git checkout branchname
    

    и в любой момент отресетиться на branchname.bak без заглядываний в рефлог.

    Еще, наверное простейшая вещь, но вдруг ты не знаешь: когда делаешь git rebase и он не дошел до конца, ты в любой момент можешь сделать git rebase --abort и все вернется к тому состоянию, которе было до ребейза. Для этого можно даже убить команду через Ctrl-C.


Log in to reply