git gui что это

Git GUI моей мечты

Я разработчик игр и мобильных приложений. Я написал немало кода на C++ и Swift. И, как и многие из вас, я пользуюсь системами контроля версий, в частности, гитом.

Гит имеет максимально функциональный command-line интерфейс и десятки если не сотни приложений для работы с ним локально при помощи графического интерфейса, которые умеют выполнять только часть функционала гита. Беда в том, что я пишу код уже 10 лет, но никак не нашел идеальный (подходящий для меня) git GUI клиент. Пример: недавно вышел Github Desktop. Я его использовал до тех пор, пока мне не понадобилось сделать checkout на конкретный коммит. И я испытал уже привычную боль от того, что данное приложение так делать не умеет. И вновь вернулся в терминал (с автодополнением для гита). И такие вещи есть в каждом GUI приложении для гита. Однако, я сюда пришел не критиковать их. Уверен, что вы и без меня имеете много претензий к этим приложениям. Я долго думал о том каким должно быть идеальное git GUI приложение. Это были мимолетные обрывки желаний, из которых трудно собрать что-то цельное. И совсем недавно эти обрывки мыслей у меня собрались в единую картину. Ниже я опишу это в формате ТЗ (технического задания) в максимально понятной форме.

Идеальный Git GUI клиент

Важно чтобы интерфейс не был суперусложнен. Если юзер откроет прилажку и увидит больше 20 кнопок, то идея отстой. Бóльшая часть пользователей переключаясь на консоль для работы с гитом пишут команду git status чтобы узнать список файлов с измененным статусом. Потому наше приложение должно почти на весь экран показывать список файлов в виде иерархии, которые имеют измененный статус (примерно как проводник/finder). Туда будет входить все, что мы можем увидеть командой git status : измененные файлы, untracked файлы, добавленные и удаленные (возможно, какой-то статус я забыл). Каждый файл должен как и в консоли отображаться либо красным цветом, либо зеленым, что показывает его добавленность в коммит. На любой файл можно кликнуть правой кнопкой мыши или нажать на три точки в правой части строки чтобы вызвать контекстное меню. В контекстном меню можно добавить файл если он не добавлен ( git add команда в терминале), сделать reset если он добавлен, удалить если он не находится в индексе (clean). Еще можно кликнуть на папку правой кнопкой и добавить всю папку ( git add folder ). Аналогично работает reset. Еще можно добавить в индекс все маленькой кнопкой в верхнем левом углу дерева файлов. Можно кликнуть по строчке с файлом чтобы открыть дифф по нему на весь экран.

Сверху окна есть отдельный заголовочный блок примерно как в Xcode с названием ветки и статусом того, что сейчас происходит (pulling, pushing, idle). Это все. То есть, окно по-умолчанию только показывает статус: нынешнюю ветку и статус файлов.

Далее пользователь наводит указатель мыши на нужную команду и кликает на нее. После этого происходит вызов команды если это команда без аргументов (например, pull, push, fetch). Если нужно указать аргументы, то пользователь кликает правой кнопкой на название команды (например, push) и появляется соответствующее модальное диалоговое окно с вводом аргументов (цель remote и имя ветки, а также галочка force), которые указываются мышью или горячими клавишами. К этом моменту изначально зажатый tab можно уже отпустить. Если кликнуть за пределами модального окна или нажать esc, то модальное окно закроется и вызов команды будет отменен. Если же в этом модальном окне указать аргументы и нажать кнопку push, то начнется выполнение команды. Процесс выполнения команды будет отображен на верхней панели под названием ветки.

Еще одно важное преимущество терминала над остальными git GUI приложениями это возможность склеивать команды последовательно при помощи операторов && и ||. Например, я лично в работе часто использую такую последовательность для подлития в свою ветку той ветки, от которой моя ветка была срезана:

Данная последовательность выполняет 4 операции:

переключается на ветку dev

скачивает последние изменения ветки dev

переключается обратно на ветку, на которой мы находились до ветки dev

вливает ветку dev в нынешнюю ветку

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

Отдельная фича, которая сделает использование истории гита удобнее, это хэширование хэша (да, именно так) коммита в виде эмоджи. Объясню на примере. Когда я смотрю историю коммитов, я вижу список труднозапоминаемых длинных хэшей типа такого

Эмоджи намного лучше запоминаются человеком, чем безымянные шестнадцатеричные хэши. Если везде, где мы ни показывали хэши коммитов (история или статус pull’а), показывать их эмоджи хэши, то пользователь лучше будет помнить на каком он коммите работает прям сейчас, и меньше будет ошибок когда он забыл влить другую ветку, запушить или запулить изменения. Вообще было бы здорово если бы эмоджи-хэш использовался везде: на github, bitbucket, teamcity. Это позволило бы проще сверять коммиты билдов с коммитами в истории.

Читайте также:  dawn of man последняя версия что нового

Источник

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

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

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

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

gitk и git-gui

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

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

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

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

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

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

GitHub для Mac и Windows

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

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

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

В центре экрана расположена область редактирования коммита: тут можно ввести сообщение коммита и выбрать файлы для включение в него. (На 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, но вкратце, важны два момента: (а) вы коммитите в отдельные ветки и (б) вы регулярно забираете изменения с удалённого репозитория.

Читайте также:  какой лучше ставить ремень грм на приору 16 клапанов

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

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

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

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

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

Заключение

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

Источник

Лучшие инструменты и расширения Git GUI в 2020

Упрощение Git с помощью потрясающих инструментов GUI и расширений IDE.

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

В этой статье мы расскажем об основных инструментах и ​​расширениях Git GUI, чтобы упростить такие простые задачи в Git и тем самым повысить эффективность вашего рабочего процесса.

Во-первых, мы рассмотрим некоторые вещи, о которых нужно знать, прежде чем использовать инструменты и расширения. Далее мы рассмотрим популярные расширения Git для популярных текстовых редакторов, Sublime Text и Atom. Наконец, мы познакомимся с тремя популярными инструментами Git GUI.

Независимое управление версиями компонентов JavaScript

Благодаря таким инструментам, как Bit, вы можете создавать версии отдельных компонентов поверх вашего «обычного» управления версиями на уровне РЕПО.

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

Компоненты, опубликованные в Bit.dev, также могут быть клонированы (в виде исходного кода) в любой проект, где они могут быть изменены и опубликованы обратно в Bit.dev с измененной версией. Это означает, что сотрудничество больше не ограничено границами вашего хранилища.

Замечание об инструментах и ​​расширениях Git GUI

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

Хотя они предлагают множество преимуществ, существуют потенциальные проблемы, о которых вам следует знать. Во-первых, эти инструменты и расширения могут предложить только определенное количество функций Git — сложные действия, такие как cherry-pick, все еще могут выполняться только на терминале. Поэтому хорошей идеей является изучение команд терминала Git. Кроме того, изучение каждого из этих инструментов становится проще, если вы знаете, как Git работает в фоновом режиме с помощью команд терминала. Далее, терминальные команды часто выполняются быстрее, поскольку между выполнением и отображением результатов нет никакой задержки. Наконец, самым большим сдерживающим фактором для того, чтобы полагаться исключительно на эти инструменты, является то, что их пользовательский интерфейс может быть непоследовательным для разных платформ и версий.

Поэтому мы предлагаем вам использовать инструменты и расширения Git GUI только после того, как вы освоитесь с командами терминала. В этом посте мы продемонстрируем, как выполнять обычные задачи Git с помощью этих инструментов и расширений.

1. Расширение Git для Sublime Text

После установки расширения откройте корневой каталог репозитория Git. Выберите Ctrl/Cmd + Shift + p и начните вводить любую команду Git. Например, чтобы проверить изменения в вашем текущем репозитории, введите git diff и нажмите ввод. Вывод команды открывается в виде новой вкладки.

При выборе одной фиксации в истории проекта сведения о ней открываются на новой вкладке.

Расширенные команды, такие как git blame также включены в этом расширении Git.

2. Встроенное расширение Git в Atom

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

Вы можете изменить активную ветку или создать новую из опций в правом нижнем углу. Вы также можете обновить свой текущий репозиторий с пульта.

После того как вы создали фиксацию, вы можете отправить любые новые изменения из пользовательского интерфейса Atom из опций в правом нижнем углу.

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

Читайте также:  хронический простатит что это такое

3. GitHub Desktop

Хотя мы проверили расширения Git для двух популярных текстовых редакторов, давайте перейдем к инструментам Git GUI. Эти инструменты предоставляют немного больше свободы по сравнению с расширениями текстового редактора, поскольку их пользовательский интерфейс специально создан для этой цели.

Обратите внимание, что пользовательский интерфейс изменений в GitHub Desktop похож на интерфейс Atom. Существует две категории файлов для поэтапных и неустановленных изменений. Различие каждого выбранного файла показано справа. Выберите файлы для подготовки к фиксации и введите сообщение о фиксации, чтобы создать фиксацию.

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

Переход на вкладку истории показывает историю проекта. Тем не менее, он показывает только историю одной ветви и не показывает связи между несколькими ветвями.

4. SourceTree

Состояние хранилища выглядит аналогично состоянию GitHub Desktop с точки зрения промежуточной и неотмеченной области, различий в выбранном файле и возможности ввода сообщения фиксации в том же окне.

История проекта намного лучше в этом инструменте. Связи между ветвями и циклами, созданными слиянием, все отображаются, когда вы нажимаете на опцию истории в левом меню.

Кнопки сверху позволяют выполнять простые операции в Git. Вы можете фиксировать изменения, управлять филиалами и удаленными пользователями, и даже создавать тайник в Git из верхнего меню.

Расширенные параметры, такие как теги, подмодули и поддеревья, также доступны в SourceTree.

Последние мысли

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

Источник

Прекращайте пользоваться Git CLI

Переходите на Git GUI, узнавайте больше о Git и забудьте о случайных отправках в master

Jul 14, 2020 · 4 min read

Если вы разработчик, то, должно быть, уже пользуетесь Git. Если нет, то, надеюсь, используете другой инструмент для контроля версий!

При работе с Git обычно пользуются CLI или GUI, в который заворачивается весь нужный функционал. Тут стоит добавить: пользоваться хорошим GUI в разы лучше.

О, мои глаза…

Первый плюс GUI заключается в том, что вы получаете Graphical User Interface — настоящий графический интерфейс, созданный специально для вас. Разработчики написали GUI, чтобы облегчить жизнь других разработчиков. С этим не поспоришь. Как только вы приловчитесь работать с GUI, то сможете по-новому взглянуть на свою базу кода.

Поэтому мн е бы хотелось познакомить вас с моим любимым Git GUI — GitKraken:

Если вы уже не первый день работаете с Git, то, надеюсь, этот GUI станет усладой для ваших глаз. С ним вы сможете просмотреть все коммиты из базы кода, удаленные ветки, слияния и теги.

И сделано это очень красиво. С таким представлением видны любые изменения, в т.ч. критические (например, в ветке master ).

Не шутите с командами

Кроме того, я не трачу время на написание названий веток и запоминание (или не запоминание!) Git-команд.

Узнайте больше об инструментах

К слову о Git, когда вы в последний раз открывали документацию или изучали что-то новое? Я — почти никогда. Хотя до сих пор учусь… но делаю это с помощью GitKraken. Например, вот что появится, если кликнуть правой кнопкой по коммиту:

Быть может, тонкости Git вам не до конца понятны?

В UI доступны разные способы для получения кода с удаленного репозитория. Вы можете запросто погуглить отдельные типы отправок изменений ( pull ). Я и сам не знал, что такие типы существуют! Если вам интересно, почитайте документацию.

Долой стереотипы

Надеюсь, вам самим захотелось поработать с GUI. Если вы дочитали до этого места, то, скорее всего, уже готовы попробовать. Однако для большинства разработчиков момент еще не настал. Почему-то у таких людей существует некий блок, мешающий им перейти на Git GUI. Например, стереотипы о том, что это не «круто». Все мы хотим чувствовать себя этакими мега-крутыми хакерами. Ведь это — одна из причин, почему мы вообще связали свою жизнь с программированием.

Однако не стоит загонять себя в строгие рамки. В конце концов, вы же не будете писать все на древнем языке программирования только в силу привычки. Хорошие инженеры так не поступают!

Еще мне кажется, что люди смотрят на GUI свысока, видя в нем «танцы с бубном». Профи работают с CLI. Ну, профессионалы не допускают ошибок. И это, пожалуй, самый главный плюс GUI.

Рискну даже сказать, что освоить Git на приличном уровне — в разы важнее, чем выучить новый язык программирования. Все-таки управление исходным кодом — это навык, который используется во всей разработке, вне зависимости от языка.

Не поддавайтесь влиянию общественности и не загоняйте себя в рамки. Пользоваться GUI — это нормально. Пользоваться CLI — это тоже нормально. Просто признайте, что вам нравится CLI, потому что писать команды в разы веселее.

Источник

Сказочный портал