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

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

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

Ответ 1

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

Меню "Файл"

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

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

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

представления

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

Справка

Здесь есть список ключевых слов! Сладкое.

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

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

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

"Знак фиксации" и соответствующие команды должны быть понятны в данный момент.

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

Средняя часть

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

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

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

Панель сообщений /diff

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

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

  • "Precedes" / "Follows" эквивалентно git describe [--contains] <commit> (git-describe)

Ответ 2

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

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

  • Верхняя левая панель отображает серию коммитов в этот репозиторий с последними сверху.
  • Было три коммитов, все от Тони Старка.
  • Сообщение о фиксации для последней фиксации было "третьим фиксацией"
  • Существует одна локальная ветвь с именем "master", она указывает на последнюю фиксацию
  • Существует одна ветвь удаленной ссылки: ветвь "master" из удаленного репозитория с именем "origin", она также указывает на последние совершают
  • Желтая точка рядом с верхним фиксатором указывает, что это текущий снимок в моей рабочей папке (называемый HEAD)
  • Ive выделил вторую фиксацию, чтобы я мог видеть ее детали в нижней панели
  • Командный SHA (уникальный идентификатор, похожий на номер версии подрывной версии) второго коммита - 3d024dd9e4a83d8c6a9a143a68b75d4b872115a6
  • В правом нижнем углу отображается список файлов, на которые воздействует вторая фиксация
  • В левом нижнем углу отображаются детали фиксации, включая полный diff
  • Щелчок по файлу в нижней правой панели прокручивает diff в нижней левой панели в соответствующий раздел 12.

Ответ 3

То, что новички действительно могут использовать в терминах "комбинации gitk и history", является конкретным объяснением того, как распознать, что произошло, посмотрев на представление дерева 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 ... ?

Скриншоты также будут оценены.

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

Спасибо

v.

Ответ 4

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

Если вы хотите использовать gui для git, проверьте TortoiseGit на Windows или GitX на Mac или QGit на linux.