Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
web - tec / progit.ru.pdf
Скачиваний:
92
Добавлен:
12.06.2015
Размер:
4.24 Mб
Скачать

Глава 2 Основы Git

Scott Chacon Pro Git

Параметр Описание

`-p`Выводит патч (заплатку/diff) внесенный каждым коммитом. `--stat`Выводит статистику по файлам измененным в каждом коммите.

`--shortstat`Отображает только строку с changed/insertions/

deletions от вывода команды `--stat`.

`--name-only`Выводит список измененных файлов после каждого коммита. `--name-status`Выводит список файлов вместе с информацией о добавлении/изменении/

удалении.

`--abbrev-commit`Выводит только первые несколько символов контрольной суммы SHA-1 вместо всех 40. `--relative-date`Выводит дату в относительном формате (например, “2 недели назад”) вместо использования пол

`--graph`Выводит ASCII граф истории ветвлений и слияний рядом с выводом лога.

`--pretty`Выводит коммиты в альтернативном формате. Параметры включают oneline, short, full, fuller, и forma

2.3.1 Ограничение вывода команды log

Кроме опций для форматирования вывода, git log имеет ряд полезных ограничительных параметров, то есть параметров, которые дают возможность отобразить часть коммитов. Вы уже видели один из таких параметров — параметр -2, который отображает только два последних коммита. На самом деле, вы можете задать -<n>, где n это количество отображаемых коммитов.

На практике вам вряд ли придётся часто этим пользоваться потому, что по умолчанию Git

через канал (pipe) отправляет весь вывод на pager, так что вы всегда будете видеть только одну страницу.

А вот параметры, ограничивающие по времени, такие как --since и --until, весьма полезны. Например, следующая команда выдаёт список коммитов, сделанных за последние две недели:

$ git log --since=2.weeks

Такая команда может работать с множеством форматов — вы можете указать точную дату

(«2008-01-15») или относительную дату, такую как «2 years 1 day 3 minutes ago».

Вы также можете отфильтровать список коммитов по какому-либо критерию поиска. Опция

--author позволяет фильтровать по автору, опция --grep позволяет искать по ключевым словам в сообщении. (Заметим, что, если вы укажете и опцию author, и опцию grep, то будут найдены все коммиты, которые удовлетворяют первому ИЛИ второму критерию. Чтобы найти коммиты, которые удовлетворяют первому И второму критерию, следует добавить опцию -- all-match.)

Последняя действительно полезная опция-фильтр для git log — это путь. Указав имя каталога или файла, вы ограничите вывод log теми коммитами, которые вносят изменения в указанные файлы. Эта опция всегда указывается последней и обычно предваряется двумя минусами (--), чтобы отделить пути от остальных опций.

В таблице 2-3 для справки приведён список часто употребляемых опций.

Опция Описание

`-(n)`Показать последние n коммитов

30

Scott Chacon Pro Git Раздел 2.3 Просмотр истории коммитов

`--since`, `--after`Ограничить коммиты теми, которые сделаны после указанной даты. `--until`, `--before`Ограничить коммиты теми, которые сделаны до указанной даты. `--author`Показать только те коммиты, автор которых соответствует указанной строке. `--committer`Показать только те коммиты, коммитер которых соответствует указанной строке.

Например, если вы хотите посмотреть из истории Git такие коммиты, которые вносят изменения в тестовые файлы, были сделаны Junio Hamano, не являются слияниями и были сделаны в октябре 2008го, вы можете выполнить что-то вроде такого:

$ git log

-- -- --pretty="%h - %s" author=gitster

since="2008-10-01" \

--before="2008-11-01" --no-merges --

t/

 

5610e3b -

Fix testcase failure when extended attribute

acd3b9e -

Enhance hold_lock_file_for_{update,append}()

f563754

-

demonstrate breakage of detached checkout wi

d1a43f2 -

reset --hard/read-tree --reset -u: remove un

51a94af -

Fix "checkout --track -b newbranch" on detac

b0ad11e -

pull: allow "git pull origin $something:$cur

 

 

 

 

 

Из примерно 20 000 коммитов в истории Git, данная команда выбрала всего 6 коммитов,

соответствующих заданным критериям.

2.3.2 Использование графического интерфейса для визуализации истории

Если у вас есть желание использовать какой-нибудь графический инструмент для визуализации истории коммитов, можно попробовать распространяемую вместе с Git программу gitk, написанную на Tcl/Tk. В сущности gitk — это наглядный вариант git log, к тому же он принимает почти

те же фильтрующие опции, что и git log. Если набрать в командной строке gitk, находясь в проекте, вы увидете что-то наподобие Рис. 2-2.

Рисунок 2.2: Визуализация истории с помощью gitk.

В верхней части окна располагается история коммитов вместе с подробным графом наследников.

Просмотрщик дельт в нижней половине окна отображает изменения, сделанные выбранным

31

Соседние файлы в папке web - tec