Руководство по пониманию Гитк?

Я представляю git команде разработчиков и нахожу gitk замечательным инструментом. Это также довольно сложно понять, так как понимание gitk требует понимания как истории git, так и самого инструмента просмотра.

Есть ли у кого-нибудь хорошие ссылки на что-то вроде "руководства для начинающих по git history с gitk"?

4 ответа

Я никогда не видел ничего специально для Гитка. Вот удар с точки зрения "как это работает". Знание команд, лежащих в основе всего (или, по крайней мере, в целом эквивалентных), помогает научиться легче использовать инструменты командной строки, а также показывает, где искать в документации, чтобы лучше понимать gitk!

Меню Файл

Это несколько изменилось за последние несколько основных версий - я описываю текущее состояние.

  • Обновление и перезагрузка: это, пожалуй, самая запутанная вещь. Перезагрузка обновляет все, как будто вы запустили программу заново с той же конфигурацией. Это означает, что если ветка была удалена / перебазирована, если некоторые коммиты теперь висят, вы их больше не видите. Обновление, с другой стороны, обновляет всю информацию, но все равно показывает все коммиты, которые были показаны ранее. Это отличная вещь для использования, если вы перебираете и хотите убедиться, что вы не ошиблись - вы можете увидеть как оригинальную, так и перебазированную версии.

  • ссылки: довольно очевидно. Ссылки включают в себя теги и ветви (которые могут быть удаленными). Вы можете перечитать их и перечислить, чтобы выбрать конкретный, чтобы показать его в истории.

Просмотры

Как говорится на странице руководства, gitk использует опции git-rev-list, чтобы помочь указать, какую историю следует отображать. Они также могут быть установлены в интерактивном режиме в меню "Вид". Страница man - это отличное место, где можно найти больше информации о способах управления представлениями (в основном это раздел ограничения коммитов). Если вы смотрели на git-log раньше вы многое видели.

Помогите

Здесь есть список сочетаний клавиш! Милая.

Контекстное меню

Здесь представлены несколько общих команд git фарфор, как правило, в обычном режиме / режиме работы по умолчанию. Перечисление их, по крайней мере, поможет вам найти правильную документацию, чтобы понять, что они делают, если вы еще этого не сделали!

  • git-diff (Diff this <-> выбранный
  • git-format-patch (сделать патч)
  • git-tag (создать тег)
  • git-diff-tree (запись коммита в файл, редко используется)
  • ГИТ-филиал
  • ГИТ-вишневого выбор
  • git-reset (сбросить ветвь до здесь). Это предложит вам мягкое, смешанное или сложное, с кратким напоминанием о том, что каждый из них делает. Более подробное описание на странице руководства, но, конечно, вы должны понимать концепцию индекса, чтобы действительно получить его.

На этом этапе "пометить коммит" и связанные с ним команды должны быть понятны.

В контекстном меню для ветки у нас есть git-checkout и -d (удалить) режим git-branch.

Средняя секция

  • ID SHA1: хэш текущего коммита. Очень полезно для копирования / вставки в терминал для выполнения действия с данным коммитом, который вы использовали для поиска gitk. Вы также можете вставить сюда хеши.

  • Кнопки вперед / назад, номер строки... очевидно!

  • Найти! Опции здесь, опять же, довольно понятны, но для всеобщего образования они аналогичны параметрам git-log: "содержащий" - это --grep"трогательные пути" - это аргументы, а добавление / удаление строки -S (Кирки).

Панель сообщений / различий

Здесь у нас есть сообщение commit вместе с выводом git-diff - это что-то вроде использования git-log -pс небольшим дополнительным:

  • "Филиалы" эквивалентны git branch -a --contains=<commit>

  • "Предшествующий"/"Следующий" эквивалентен git describe [--contains] <commit> ( git-description)

Вот введение в визуализацию истории веток в gitk со скриншотами.

http://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understand-git/

  1. Верхняя левая панель показывает серию коммитов в этот репозиторий, с самыми последними сверху.
  2. Там было три коммита, все от Тони Старка.
  3. Сообщение коммита для самого последнего коммита было "третий коммит"
  4. Существует одна локальная ветвь с именем "master", она указывает на самый последний коммит
  5. Существует одна удаленная ссылочная ветвь: ветвь "master" из удаленного репозитория с именем "origin", она также указывает на самый последний коммит
  6. Желтая точка рядом с верхним коммитом указывает, что это моментальный снимок в моей рабочей папке (называемый HEAD)
  7. Я выделил второй коммит, чтобы увидеть его детали в нижней панели
  8. SHA коммита (уникальный идентификатор, аналогичный номеру ревизии subversion) второго коммита
    3d024dd9e4a83d8c6a9a143a68b75d4b872115a6
  9. Внизу справа показан список файлов, на которые повлиял второй коммит
  10. Внизу слева показаны детали фиксации, включая полную разницу
  11. Щелчок по файлу в нижней правой панели прокручивает diff в нижней левой панели до соответствующего раздела 12.

То, что новички действительно могли бы использовать в терминах "сочетания gitk и истории", - это конкретное объяснение того, как распознать то, что произошло, глядя на представление дерева gitk.

Насколько я понял, правильный взгляд на дерево (конечно):

 1. each node is a commit
 2. ultimate parent is at the bottom
 3. direct child to a commit is the one that happened first in the same branch (no matter who did it)
 4. the node with 2 or more children indicates ... ?
 5. merge commit node has 2 parents.
 6. rebase is recognized ... ?

Скриншоты также приветствуются.

Дерево фактически представляет текущее состояние хранилища. Было бы здорово, если бы мы могли сказать, что произошло, посмотрев на дерево.

Спасибо

против

Единственное, что я нахожу полезным в интерфейсе gitk - это хороший (красочный) обзор веток.

Если вам нужен графический интерфейс для git, проверьте TortoiseGit на windows или GitX на Mac или QGit на linux.

Другие вопросы по тегам