...

Git gui что это за программа

A1.1 Приложение A: Git в других окружениях — Графические интерфейсы

Если вы прочитали всю книгу, то много узнали об использовании Git в командной строке. Вы можете работать с локальными файлами, синхронизировать свой репозиторий с чужими по сети и эффективно работать с другими людьми. Но это ещё не всё; Git обычно используется как часть большей экосистемы и терминал это не всегда лучший способ работы с ним. Рассмотрим несколько других окружений где Git может быть полезен и как другие приложения (включая ваши) работают с ним.

Графические интерфейсы

Родная среда обитания Git — это терминал. Новые функции изначально доступны только там и лишь терминал поможет вам полностью контролировать всю мощь Git. Но текстовый интерфейс — не лучший выбор для всех задач; иногда графическое представление более предпочтительно, а некоторые пользователи чувствуют себя комфортней, орудуя мышкой.

Также стоит понимать, что разные интерфейсы служат разным целям. Некоторые Git клиенты ограничиваются лишь той функциональностью, которую их автор считает наиболее востребованной или эффективной. Учитывая это, ни один из представленных ниже инструментов не может быть «лучше» остальных: они просто предназначены для решения разных задач. Также стоит помнить, что всё, что можно сделать с помощью графического интерфейса, может быть выполнено и из консоли; командная строка по прежнему является местом, где у вас больше всего возможностей и контроля над вашими репозиториями.

gitk и git-gui

Установив Git, вы также получаете два графических инструмента: gitk и git-gui .

gitk — это графический просмотрщик истории. Что-то типа улучшенных git log и git grep . Это тот инструмент, который вы будете использовать для поиска событий или визуализации истории.

Проще всего вызвать Gitk из командной строки: Просто перейдите в каталог с репозиторием и наберите:

$ gitk [git log options]

Gitk принимает много различных опций, большинство из которых транслируются в используемый git log . Возможно, наиболее полезная опция — —all , которая указывает Gitk выводить коммиты, доступные из любой ссылки, а не только HEAD. Интерфейс Gitk выглядит так:

`gitk`- инструмент для просмотра истории

Рисунок 151. gitk — инструмент для просмотра истории

Интерфейс на картинке похож на вывод git log —graph ; каждая точка соответствует коммиту, линии отражают родство коммитов, а ссылки изображены цветными прямоугольниками. Жёлтая точка обозначает HEAD, а красная — изменения, которые попадут в следующий коммит. В нижней части расположены элементы интерфейса для просмотра выделенного коммита: слева показаны изменения и комментарий, а справа — общая информация по изменённым файлам. В центре расположены элементы для поиска по истории.

git-gui , в отличие от gitk — это инструмент редактирования отдельных коммитов. Его тоже очень просто вызвать из консоли:

$ git gui

И его интерфейс выглядит так:

`git gui` — инструмент редактирования коммитов

Рисунок 152. git gui — инструмент редактирования коммитов

Слева находится область редактирования Git индекса: изменения в рабочем каталоге наверху, добавленные в индекс изменения — снизу. Вы можете перемещать файлы целиком между двумя состояниями, кликая на иконки, или же вы можете просмотреть изменения в конкретном файле, кликнув по нему.

Справа вверху расположена область просмотра изменений выделенного файла. Можно добавлять отдельные кусочки или строки в индекс из контекстного меню в этой области.

Справа снизу находится область для ввода сообщения коммита и несколько кнопок. Введите сообщение и нажмите кнопку «Commit» чтобы выполнить коммит. Также можно изменить предыдущий коммит, выбрав радиокнопку «Amend», что приведёт к обновлению индекса содержимым предыдущего коммита. После этого вы можете как обычно добавлять или удалять файлы из индекса, изменить сообщение коммита и, нажав кнопку «Commit» создать новый коммит, заменив им предыдущий.

gitk и git-gui — это примеры инструментов, ориентированных на задачи. Каждый из них наиболее подходит для решения определённой задачи (просмотр истории или создание коммитов соответственно) и не поддерживает дополнительные функции Git, ненужные для её решения.

GitHub для Mac и Windows

Компания GitHub выпустила два инструмента, ориентированных на рабочий процесс, а не на конкретные задачи: один для Windows, второй — для Mac. Эти клиенты — хороший пример процесс-ориентированного ПО: вместо предоставления доступа ко всей функциональности Git, они концентрируются на небольшом наборе фич, работающих вместе для достижения цели. Выглядят они примерно так:

GitHub для Mac

Рисунок 153. GitHub для Mac

GitHub для Windows

Рисунок 154. GitHub для Windows

Они спроектированы по одному шаблону, поэтому мы будет рассматривать их как один продукт в этой главе. Мы не будем разбирать по косточкам эти инструменты (в конце-концов у них есть документация), а лишь быстренько взглянем на экран изменений (место, где вы будете зависать больше всего).

  • Слева расположен список отслеживаемых репозиториев; можно добавить репозиторий (клонировав его, либо указав путь к существующей копии) нажатием кнопки + над списком.
  • В центре экрана расположена область редактирования коммита: тут можно ввести сообщение коммита и выбрать файлы для включение в него. (На Windows, история коммитов расположена под этой областью, на Mac это отдельная вкладка.)
  • Справа — просмотр изменений: что изменилось в рабочем каталоге, какие изменения войдут в коммит.
  • И стоит обратить внимание на кнопку «Sync» справа вверху, которая используется для синхронизации по сети.

Примечание

Необязательно регистрироваться на GitHub, чтобы работать с этими инструментами. Хотя они навязывают использование GitHub, оба инструмента прекрасно работают с любым другим Git сервером.

Установка

GitHub для Windows можно скачать на https://windows.github.com, а для Mac — на https://mac.github.com. При первом запуске обе программы проведут первоначальную настройку Git, например, сконфигурируют ваше имя и email, а также установят разумные значения по умолчанию для распространённых опций типа CRLF-поведение и хранилище паролей.

Оба инструмента поддерживают автообновление в фоне — это означает, что у вас всегда будет последняя версия. Это также относится к поставляемому в комплекте с ними Git — вам никогда не придётся обновлять его вручную. На Windows вы также получаете ярлык для запуска PowerShell с Posh-Git, который мы рассмотрим далее в этой главе.

Следующий шаг — скормить программе парочку репозиториев для работы. Клиент для GitHub показывает список репозиториев, доступных вам на GitHub, и вы можете клонировать любой в один клик. Если же у вас уже есть клонированный репозиторий, просто перетяните его из окна Finder (или Windows Explorer) в окно клиента GitHub, и он будет включён в список репозиториев слева.

Рекомендуемый рабочий процесс

После установки GitHub клиент можно использовать для решения кучи стандартных задач. Рекомендуемый ниже подход к работе иногда называют «GitHub Flow». Мы рассмотрели этот рабочий процесс в разделе Рабочий процесс с использованием GitHub главы 6, но вкратце, важны два момента: (а) вы коммитите в отдельные ветки и (б) вы регулярно забираете изменения с удалённого репозитория.

Управление ветками слегка различается на Mac и Windows. В Mac версии для создания ветки есть кнопка вверху окна:

Кнопка создания ветки на Mac

Рисунок 155. Кнопка создания ветки на Mac

На Windows создание ветки происходит путём ввода её имени в переключатель веток:

Создание ветки в Windows

Рисунок 156. Создание ветки в Windows

После создания ветки добавление коммитов в неё довольно тривиально. Измените что-нибудь в рабочем каталоге и, переключившись в окно клиента GitHub, вы увидите свои изменения. Введите сообщение коммита, выберете файлы для включения в коммит и нажмите кнопку «Commit» (ctrl-enter или ⌘-enter).

Взаимодействие с удалёнными репозиториями происходит в первую очередь посредством кнопки «Sync». В Git есть отдельные команды для отправки изменений на сервер, слияния изменений воедино и перемещения веток друг относительно друга, но клиент GitHub совмещает все эти команды в одну. Вот что происходит когда вы жмёте «Sync»:

  1. git pull —rebase . Если эта команда выполнится с ошибкой, будет выполнено git pull —no-rebase .
  2. git push .

Это довольно привычный, но рутинный процесс при работе по «GitHub Flow», совмещение команд воедино действительно экономит время.

Заключение

Перечисленные инструменты отлично решают поставленные перед ними задачи. С их помощью разработчики (и не только) могут начать совместную работу над проектами в считанные минуты, причём с настроенным рабочим процессом. Но если вы придерживаетесь иных подходов к использованию Git, или если вам нужно больше контроля над происходящим, мы рекомендуем вам присмотреться к другим клиентам, а то и вовсе к командной строке.

Git gui что это за программа

Changes in the git-gui manual

  1. 2.35.1 → 2.42.0 no changes
  2. 2.35.0 01/24/22

Check your version of git by running

NAME

git-gui — A portable graphical interface to Git

SYNOPSIS

git gui [] []

DESCRIPTION

A Tcl/Tk based graphical user interface to Git. git gui focuses on allowing users to make changes to their repository by making new commits, amending existing ones, creating branches, performing local merges, and fetching/pushing to remote repositories.

Unlike gitk, git gui focuses on commit generation and single file annotation and does not show project history. It does however supply menu actions to start a gitk session from within git gui.

git gui is known to work on all popular UNIX systems, Mac OS X, and Windows (under both Cygwin and MSYS). To the extent possible OS specific user interface guidelines are followed, making git gui a fairly native interface for users.

COMMANDS

Start a blame viewer on the specified file on the given version (or working directory if not specified).

Start a tree browser showing all files in the specified commit. Files selected through the browser are opened in the blame viewer.

Start git gui and arrange to make exactly one commit before exiting and returning to the shell. The interface is limited to only commit actions, slightly reducing the application’s startup time and simplifying the menubar.

Display the currently running version of git gui.

Examples

git gui blame Makefile

Show the contents of the file Makefile in the current working directory, and provide annotations for both the original author of each line, and who moved the line to its current location. The uncommitted file is annotated, and uncommitted changes (if any) are explicitly attributed to Not Yet Committed.

git gui blame v0.99.8 Makefile

Show the contents of Makefile in revision v0.99.8 and provide annotations for each line. Unlike the above example the file is read from the object database and not the working directory.

git gui blame —line=100 Makefile

Loads annotations as described above and automatically scrolls the view to center on line 100.

Make one commit and return to the shell when it is complete. This command returns a non-zero exit code if the window was closed in any way other than by making a commit.

git gui citool —amend

Automatically enter the Amend Last Commit mode of the interface.

git gui citool —nocommit

Behave as normal citool, but instead of making a commit simply terminate with a zero exit code. It still checks that the index does not contain any unmerged entries, so you can use it as a GUI version of git-mergetool[1]

Same as git gui citool (above).

git gui browser maint

Show a browser for the tree of the maint branch. Files selected in the browser can be viewed with the internal blame viewer.

SEE ALSO

The Git repository browser. Shows branches, commit history and file differences. gitk is the utility started by git gui‘s Repository Visualize actions.

Other

git gui is actually maintained as an independent project, but stable versions are distributed as part of the Git suite for the convenience of end users.

The official repository of the git gui project can be found at:

https://github.com/prati0100/git-gui.git/

Git gui что это за программа

Changes in the git-gui manual

  1. 2.35.1 → 2.42.0 no changes
  2. 2.35.0 01/24/22

Check your version of git by running

NAME

git-gui — A portable graphical interface to Git

SYNOPSIS

git gui [] []

DESCRIPTION

A Tcl/Tk based graphical user interface to Git. git gui focuses on allowing users to make changes to their repository by making new commits, amending existing ones, creating branches, performing local merges, and fetching/pushing to remote repositories.

Unlike gitk, git gui focuses on commit generation and single file annotation and does not show project history. It does however supply menu actions to start a gitk session from within git gui.

git gui is known to work on all popular UNIX systems, Mac OS X, and Windows (under both Cygwin and MSYS). To the extent possible OS specific user interface guidelines are followed, making git gui a fairly native interface for users.

COMMANDS

Start a blame viewer on the specified file on the given version (or working directory if not specified).

Start a tree browser showing all files in the specified commit. Files selected through the browser are opened in the blame viewer.

Start git gui and arrange to make exactly one commit before exiting and returning to the shell. The interface is limited to only commit actions, slightly reducing the application’s startup time and simplifying the menubar.

Display the currently running version of git gui.

Examples

git gui blame Makefile

Show the contents of the file Makefile in the current working directory, and provide annotations for both the original author of each line, and who moved the line to its current location. The uncommitted file is annotated, and uncommitted changes (if any) are explicitly attributed to Not Yet Committed.

git gui blame v0.99.8 Makefile

Show the contents of Makefile in revision v0.99.8 and provide annotations for each line. Unlike the above example the file is read from the object database and not the working directory.

git gui blame —line=100 Makefile

Loads annotations as described above and automatically scrolls the view to center on line 100.

Make one commit and return to the shell when it is complete. This command returns a non-zero exit code if the window was closed in any way other than by making a commit.

git gui citool —amend

Automatically enter the Amend Last Commit mode of the interface.

git gui citool —nocommit

Behave as normal citool, but instead of making a commit simply terminate with a zero exit code. It still checks that the index does not contain any unmerged entries, so you can use it as a GUI version of git-mergetool[1]

Same as git gui citool (above).

git gui browser maint

Show a browser for the tree of the maint branch. Files selected in the browser can be viewed with the internal blame viewer.

SEE ALSO

The Git repository browser. Shows branches, commit history and file differences. gitk is the utility started by git gui‘s Repository Visualize actions.

Other

git gui is actually maintained as an independent project, but stable versions are distributed as part of the Git suite for the convenience of end users.

The official repository of the git gui project can be found at:

https://github.com/prati0100/git-gui.git/

При подготовке материала использовались источники:
https://book.git-scm.com/book/ru/v2/%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-A:-Git-%D0%B2-%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D1%85-%D0%BE%D0%BA%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%D1%85-%D0%93%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5-%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D1%8B
https://git-scm.com/docs/git-gui
https://book.git-scm.com/docs/git-gui/en

Оцените статью