Контент


Работа с Git

Сохраняю для себя различные полезные советы по работе с Git, дабы не гуглить постоянно одно и то же. Возможно, кому-то еще будет полезно.

  1. Сброс (отмена) коммита(ов). Для этого есть команда git reset.
    git reset --hard отменит все незакоммиченные изменения.
    git reset --hard HEAD^ откатит на один коммит назад.
    git reset --hard HEAD~n откатит последние n коммитов.
  2. Предыдущий пункт описывает достаточно рискованные манипуляции, в случае ошибки можно потерять важные изменения. Однако если прошло немного времени, то git все вернет:
    git reflog покажет последние коммиты, откаты и т.д. Смотрим нужный SHA1 и запоминаем/копируем/переписываем.
    git reset --hard SHA1 вернет нас обратно к этому SHA1.
  3. Когда в репозитории много веток, получить их разом можно командой git fetch <имя remote>
  4. Создать локальную копию ветки удобно с использованием ключа --track, например git checkout --track -b origin/3.1/develop.
  5. Выдернуть конкретный коммит из другой ветки можно командой cherry-pick:
    git cherry-pick commit_hash
  6. Поиск ветки, в которой лежит нужный коммит:
    git branch --contains commit_hash
  7. Выдергивание списка коммитов в формате «один коммит — одна строка». Содержит только хэш (короткий) и описание коммита. Потом удобно его grep’ать, чтобы остались только нужные (например, по номеру тикета из описания):
    git log --pretty='tformat:%h %s'

Полезные ссылки

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Комментарии (2)

Будьте в курсе обсуждения, подпишитесь на RSS ленту комментариев к этой записи.

  1. Dream пишет:

    Спасибо. Только вот начал изучать Git =)

  2. Алексей пишет:

    git reflog вернул день работы :)
    спасибо ))



Можно включить подсветку кода: <code><pre lang="">...</pre></code>
Разрешены некоторые HTML теги

или используйте trackback.