git log, git diff История изменений, вывод разницы, отличий между коммитами/состояниями, короткие хэши, имена файлов. Примеры
Primary tabs
В этой заметке написано как смотреть разницу в состояниях репозитория в разные моменты истории изменений.
Прежде чем определять разницу нам потребуется вывести историю изменений
git log История изменений фалов
(флаги, приведенные ниже можно комбинировать)
- Журнал всех изменений:
git log
- С перечислением имен измененных файлов в каждом коммите:
git log --name-only
Или тоже самое с короткими хэшами и более кратко/аккуратно:
git log --oneline --name-only
- С подробной информацией об изменениях в каждом коммите:
git log -p
- История изменений конкретного файла:
git log -p путьКфайлу
- Фильтрация истории изменений по имени пользователя:
git log --author="ИмяПользователя"
- Вывод истории с короткими хэшами коммитов (краткая форма):
git log --oneline
- Вывод истории коммитов только для текущей ветки -- если вы ответвились от ветки главнаяветка, то так:
git log главнаяветка..
ПРИМЕЧАНИЕ: история в консоли может показываться в многострочном режиме, чтобы выйти из него нажмите Q.
- Официальная документация по git log: https://git-scm.com/docs/git-log
Теперь перейдем к тому как смотреть изменения.
git diff Вывод разницы между состяниям/коммитами
- Между текущем состоянием рабочей копии (незакоммиченные изменения) и последним коммитом можно так:
git diff HEAD
- Между последним коммитом и текущем состоянием:
git diff HEAD^ HEAD
- Чтобы вывести только имена изменившихся файлов, используйте команду:
git diff --name-only SHA1 SHA2
где SHA1 SHA2 -- хэши коммитов-границ интересующих вас изменений.
- Между последнем коммитом и предыдущем состоянии:
git diff хэшКоммита хэшКоммита~1
например:
git diff --name-only bd113045 bd113045~1
-- причем:
- ~1 -- это непосредственный родитель коммита с хэшем хэшКоммита
- ~2 -- дедушка
- ~3 -- прадедушка и т.д.
(источник соображений по использованию тильды: https://mirrors.edge.kernel.org/pub/soft...)
--name-only -- флаг для вывода только имен изменившихся файлов, если вам нужны и подробности внутренних изменений, то уберите его из команды.
ПРИМЕЧАНИЕ: разница в консоли может показываться в многострочном режиме, чтобы выйти из него нажмите Q.
- Официальная документация по git diff: https://git-scm.com/docs/git-diff
- Log in to post comments
- 5808 reads