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

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

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


person krosenvold    schedule 15.10.2009    source источник
comment
comment
Блог lostechies.com/joshuaflanagan/2010/09 /03/ показывает представление gitk и может помочь понять контекстное меню gitk.   -  person koppor    schedule 27.07.2017


Ответы (4)


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

Меню «Файл»

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

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

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

Просмотры

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

Помощь

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

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

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

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

На этом этапе команда «отметить фиксацию» и связанные с ней команды не требуют пояснений.

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

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

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

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

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

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

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

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

  • «Предшествует»/«Следует» эквивалентно git describe [--contains] <commit> (git -опишите)

person Cascabel    schedule 15.10.2009
comment
Достаточно справедливо для команд меню gitk, +1 за это. Вы хорошо справляетесь с частью gitk, но я действительно надеялся на какое-то объяснение комбинации gitk и истории. - person krosenvold; 15.10.2009
comment
Я хотел бы сделать этот ответ лучше! Думаю, я не слишком понимаю, что вы подразумеваете под объяснением истории git. Нуждается ли в объяснении концепция ветвления и слияния? Тот факт, что коммиты напрямую зависят от предыдущего коммита через их хэш? Кажется, что когда вы буквально видите историю на экране, вам нечего объяснять. - person Cascabel; 15.10.2009
comment
Извините, может быть я туплю, но я не понимаю, как просто git commit -a или даже git add в gitk. Есть что-то, что мне не хватает? - person ubershmekel; 11.11.2012
comment
@ubershmekel gitk не делает ни того, ни другого; если вам нужен графический интерфейс для них, встроенный git gui. Однако этот вопрос касается только gitk, а gitk, по сути, является инструментом просмотра истории (с небольшим количеством манипуляций с ветвями). - person Cascabel; 11.11.2012

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

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

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

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

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

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

Спасибо

v.

person tishma    schedule 18.02.2010
comment
4. ... ветвь, 6. ... совсем нет, поскольку она просто переупорядочивает существующие коммиты - person centic; 19.08.2012

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

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

person Davy Landman    schedule 15.10.2009
comment
Я думаю, что это немного поспешное суждение. Конечно, конструктор действий — это круто, но многих встроенных функций в контекстном меню gitk не хватает. gitk предоставляет очень простой способ управления ветвями с визуальной обратной связью, что особенно полезно для новых пользователей. - person Cascabel; 15.10.2009
comment
Мне больше нравится кли, но иногда я вызываю gitk, чтобы увидеть ветки и слияния. Я бы не рекомендовал интерфейс gitk для новых пользователей. Возможно, их отпугнуть? - person Davy Landman; 15.10.2009
comment
Как ни странно, я думаю, что вы оба правы. - person innaM; 16.10.2009