Friday, February 19, 2010

Сегодня я люблю git еще больше

Как обычно это бывает, решил я маленькое изменение закомитить в trunk. Потом еще одно в след, по пути они пересеклись с измениями колег. Тут народ встал дыбом и решил, что последнее изменение нужно переделать. Пока я спал, сделали бранч с последним комитом и откатили его в транке, а первый оставили в транке. Утром я продолжил работу над новой веткой.

Работа закончилась и нужно отправить все клиенту, а у клиента версия X продукта. Понял, что пришло то время, когда необходимо изучить git rebase подробнее. Оказалось все просто и очень вкусно.

Копируем текущую ветку:

    git co -b tmp

Запускаем интерактивный rebase на нужную нам версию:

    git rebase -i tag-version-X

В редакторе открывается список всех изменений между текущей позицией и версией X. Можно удалить любую строчку и выкинуть измение. В vim и других редакторах, которые могут запускать команды не выходя из редактора, можно посмотреть измения более детально, используя хеш:

    :!git show <sha1-hash>

Далее можно использовать format-patch или git diff:

    git diff tag-version-X

И отправлять результат. По окончанию удаляем временную ветку:

    git br -D tmp

No comments:

Post a Comment