Git extensions что это
Перейти к содержимому

Git extensions что это

  • автор:

Pro Git

Ну и рассмотрим еще этот инструмент. Качаем тут.

GE0000

Git Extensions в установке по умолчанию идет сразу с msysGit и KDiff3, мне это не надо, так как у меня все это уже стоит. Версия без них весит куда меньше. В данном случае 9.3Мб против 38Мб.

Можно так же скачать и портабельную версию, но с ней могут быть вот такие проблемы при запуске

GE0005

Так что качаем ту что посрединке и устанавливаем

GE0006

GE0007

GE0008

GE0009

Так как у меня PuTTy уже стоит в комплекте с TortoiseGit, то я выбрал его. Правда потом пути к нему надо прописать в настройках Git Extensions, но он даже сам подскажет как это сделать.

GE0010

GE0011

Если возникает такая ошибка то это легко правится кнопкой Repair, надо просто указать путь к sh.exe в каталоге Git. Но он сам находит этот путь.

GE0002

GE0003

Далее может быть ошибка что не увидит PuTTy. Это тоже легко правится

GE0012

GE0013

GE0014

GE0015

GE0018

Ну и запускаем тулзу

GE0016

GE0017

Все в принципе достойно.

Эффективный GitFlow на проектах

В статье собраны особенности работы с git на проектах внедрения DirectumRX. Описаны настройки, которые доступны для среды разработки и репозиториев в целом. Рассмотрены основные команды git на примере GitExtensions. Приведены рекомендации по оформлению кода и слияния разработки.

Настройка окружения для работы с git

В среде разработки Directum RX для хранения исходных кодов используется распределенная система контроля версий Git. Общая схема взаимодействия среды разработки и Git описана в справке Схема работы с исходными кодами.

Настройки в конфигурационном файле DDS

Настройка локального и удалённого репозиториев задаётся в конфигурационном файле, который можно найти по пути «C:\Program Files\Directum Company\Sungero Development Studio\Bin\_ConfigSettings.xml».

Рассмотрим основные параметры для работы с git.

— настройка репозитория для базового решения. Где folderName — путь к папке относительно параметра GIT_ROOT_DIRECTORY, а url — ссылка на удалённый репозиторий.

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

Подключение к удалённому репозиторию

Учётные данные для подключения к репозиторию можно настроить в диспетчере учётных данных.

Также строку подключения можно задать в конфигурационном файле репозитория, например, url=https://username:password@tfsozrrx.directum.ru/DefaultCollection/DirRXCustomClients/_git/LLK.

Модель ветвления в git

Основной принцип

В новом репозитории автоматически создается ветка master. В ней фиксируется протестированная и прорецензированная разработка в состоянии, готовом для передачи клиенту.

Разработка ведется в рамках ветки dev , которую разработчик создаёт от ветки master после настройки репозиториев и импорта базовых решений. Она предназначена для фиксации прорецензированной разработки в состоянии, готовом для передачи в тестирование.

От dev создаются временные ветки для фич. После того, как фича прорецензирована, временная ветка фичи объединяется с исходной веткой.

Ниже представлена визуальная схема ветвления.

Рекомендация по передачи разработки заказчику

К моменту передачи разработки заказчику необходимо

  1. Поставить метку с номером версии на последний коммит в master.
  2. Сформировать пакет для передачи заказчику.
  3. Сделать коммит и отправить изменения номера билда после формирования пакета в master .
Рекомендация по обновлению на новую версию

Перед обновлением на новую версию необходимо создать ветку для бэкапа состояния заказной разработки до обновления. Название ветки – номер версии до обновления.

Обновление осуществляетcя в ветке master.

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

Основы работы с git на примере GitExtensions

GitExtensions – одна из GUI-утилит для работы с git-репозиториями. Доступна для скачивания с GitHub. Справка доступна по адресу http://git-extensions-documentation.readthedocs.io/en/latest/.

Получение изменений с сервера

Нажать на кнопку pull (выделена красным). Так же pull можно сделать через меню: Commands -> Pull… или горячими клавишами Ctrl-вниз.

В открывшемся окне в разделе Merge options доступны следующие варианты:

Merge – получает изменения с сервера в текущую ветку и при наличии локальных изменений создает merge-commit. Эту опцию в повседневной работе не используем, т.к. после нее история репозитория становится ветвистой и неудобной для восприятия.

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

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

Сохранение изменений

После внесения изменений в исходный код необходимо эти изменения сохранить в репозиторий. Для этого нажать кнопку Commit.

Индексирование файлов

В открывшемся окне, в левой части, выбрать те файлы, которые нужно закоммитить, после чего нажать кнопку Stage. После чего выбранные файлы будут проиндексированы и попадут в коммит. Если после занесения файла в индекс его поменять в рабочей папке, то для того, чтобы новые изменения также попали в коммит, их снова необходимо проиндексировать.

Выполнение commit-а

Далее необходимо написать сообщение к коммиту.

После этого нажимаем кнопку Commit, и все проиндексированные изменения попадут в репозиторий.

Отправка изменений на сервер

Подготовка перед отправкой

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

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

Схлапывание коммитов

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

Существует несколько методов схлапывания. Выбирать конкретный метод стоит исходя из ситуации. Например, если ведется одновременная разработка клиента и сервера, и нужно схлопнуть коммиты по областям – отдельно серверные изменения, отдельно клиентские, то стоит воспользоваться методом схлапывания через reset.

Если нужно схлопнуть конкретные коммиты в несколько, то лучше воспользоваться интерактивным режимом rebase’а.

Схлапывание через reset

По истории репозитория ищем коммит, после которого расходится история локальной ветки и удаленной (в которую должны попасть изменения). Далее нажать ПКМ на этот коммит и выбрать пункт Reset current branch to here.

В открывшемся окне поставить опцию reset type в soft, которая поставит указатель текущей ветки в указанный коммит. После чего все изменения всех файлов из локальных коммитов попадут одним плоским списком в индекс, и их останется только закоммитить и сделать rebase на нужную ветвь.

Push изменений

Перед отправкой своих изменений на сервер необходимо предварительно получить свежие изменения с сервера. В противном случае при попытке отправки будет выведен диалог запроса на получение изменений, в котором необходимо ответить “pull with rebase”.

После получения всех изменений с сервера и решения конфликтов (если они получились), нужно нажать на кнопку push (выделена красным). Так же push можно сделать через меню Commands > Push… или горячими клавишами Ctrl-вверх.

В открывшемся окне убедиться, что отправляем на сервер нужную ветку и нажать на кнопку Push.

Откат изменений

Несохраненные изменения

Если необходимо отменить изменения в рабочей папке, это можно сделать через окно коммита.

В открывшемся окне выбрать нужные файлы, изменения в которых необходимо откатить и через контекстное меню выбрать Reset file or directory changes.

Также для отмены всех изменений в рабочей папке можно воспользоваться командой из меню Commands -> Reset changes.

Неотправленные изменения

Если изменения еще не были отправлены на сервер, то один или несколько последних коммитов можно откатить, выполнив reset на требуемый коммит с опцией hard. Reset hard удаляет все изменения из рабочей папки, индекса и репозитория. Пользоваться этой опцией нужно аккуратно т.к. можно случайно потерять все свои изменения.

Изменения на сервере

Просто отменить изменения на сервере через reset или rebase нельзя. Все, что отправлено на сервер – это история, которая не подлежит изменению. Если же оказалось необходимым откатить конкретный коммит, который уже был отправлен на сервер, то можно воспользоваться командой revert. Для этого выбрать в истории репозитория коммит, который хотим откатить, и через контекстное меню выбрать Revert commit.

После выполнения этой команды, откаченные изменения автоматически попадут в индекс, и их останется только закоммитить и отправить на сервер , или же можно поставить галочку “Automatically create a commit”, тогда коммит с откатом изменений будет создан автоматически, и останется только отправить его на сервер.

Чтобы исправить свои отправленные изменения, которые были откачены с помощью revert, можно сделать revert для revert-commit’а. Изменения появятся в индексе, их можно поправить и залить.

Работа с ветками

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

Чтобы создать ветку, нужно нажать ПКМ на нужном коммите, на котором будет находится текущий указатель ветки. В контекстном меню выбрать Create new branch. В открывшемся окне указать имя ветви и нажать Create branch.

Использовать слово master в ветках кроме master нельзя.

Переключение между ветками

Для переключения веток нужно воспользоваться переключателем сверху:

В выпадающем списке отображаются только локальные ветки. Для переключения на remote-ветки необходимо выбрать пункт «Checkout branch. », и в открывашемся окне выбрать удаленную ветку, на которую надо переключиться.

Рекомендации по ведению разработки для исключения проблем при слиянии

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

Общие рекомендации

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

Если новый тип был создан в рамках ветки фичи, то изменения необходимо зафиксировать отдельным коммитом для возможности передачи изменений в другие ветки git-механизмом «cherry-pick». Пример использования данного механизма в Git Extensions Cherry pick commit.

Объекты, которые необходимо создавать в целевой ветке master или dev:

  1. Свойства сущности.
  2. Действия сущности.
  3. Группы и действия на обложке модуля.
  4. Действия на ленте и контроли на карточке сущности.
  5. Отчеты.
  6. Серверные и клиентские события сущностей.

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

Рекомендации по соблюдению общей структуры файлов

Чтобы снизить вероятность ошибок при слиянии файлов cs, необходимо по возможности выделять блоки кода в регионы, примеры описаны ниже. Также необходимо добавлять новые функции при помощи команды «Добавить» из редактора формы сущности, чтобы они создавались в начале файла.

Файл инициализации

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

Файл с обработчиками схемы задач

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

Рекомендации по разрешению конфликтов

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

Решение конфликтов при слиянии свойств сущности

Метаданные новых свойств сущностей добавляются в файл ../.Shared//.mtd, в блок Properties. При слиянии разработки возникают конфликты из-за общей структуры, но разных идентификаторов и названий. Ниже показан пример конфликта при добавлении свойств параллельно в двух ветках.

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

Примечание. Выстроенный порядок метаданных может влиять на отображение в списках сущностей для абстрактных типов, в наследниках которых необходимо вывести одинаковые свойства.

Решение конфликтов при слиянии действий сущности

Метаданные новых действий для сущностей добавляются в файл ../.Shared//.mtd, в блок Actions. Ниже приведён пример конфликта при слиянии двух новых действий.

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

Рекомендации при слиянии UI элементов

Обложка модуля

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

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

Git extensions что это

Git Extensions это графическая программа для работы с Git .

Почитать документацию можно на официальном сайте: gitextensions.github.io

Git Extensions позволяет использовать Git без консоли.

Скачиваем Git Extensions для Windows

На заметку! Перед установкой Git Extensions у вас должен быть установлен Git console . Скачать и установить Git console .

Скачиваем последнюю версию Git Extensions для Windows с официального сайта: github.com/gitextensions/releases/latest

Git Extensions

gitextensions icon

Git Extensions — это автономный инструмент пользовательского интерфейса для управления git-репозиториями.

  • Open Source Free
  • Windows

Git Extensions — это автономный инструмент пользовательского интерфейса для управления git-репозиториями. Он также интегрируется с Windows Explorer и Microsoft Visual Studio (2010/2012/2013/2015/2017). Linux поддерживается версией 2.51 с некоторыми проблемами.

Links to official sites

Features

Categories

Теги

  • Alternatives 27

Alternatives to Git Extensions

GitEye

Это бесплатное настольное приложение сочетает в себе простой в использовании графический Git-клиент с центральным видением основных задач разработчика, таких как отслеживание дефектов, гибкое планирование, анализ кода и сервисы сборки. Легко начать,… Free Linux Mac Windows

GitEye icon

Guitar

Git GUI Client. Резюме Свободное ПО с открытым исходным кодом (GPL v2) Конечно, коммерческие цели также бесплатны. Запустите на Windows, MacOS и Linux Написано на C ++ Работает на Qt 5 Бинарные http://files.soramimi.jp/guitar/ документы как построит… Open Source Free Linux Mac Windows

Guitar icon

GitX

Гитк клон для OS X Git — популярная распределенная система контроля версий, изначально созданная Линусом Торвальдсом для координации работы над ядром Linux. GitX — это клон, похожий на gitk, написанный специально для OS X Leopard и выше. Это означае… Open Source Free Mac

GitX icon

Cycligent Git Tool

Cycligent Git Tool — это простой графический графический интерфейс для ваших проектов GIT. Освойте и управляйте всеми своими репозиториями в простом визуальном формате, обеспечивающем исключительный опыт. Linux Mac Windows

Cycligent Git Tool icon

Gitbox

Графический git-клиент для MacOS X. Git — это распределенная система контроля версий. Видеть Гит Freemium Mac

Gitbox icon

OctoDroid

OctoDroid это GitHub клиент для мобильных устройств Android. Это позволяет вам просматривать, загружать исходный код, добавлять / редактировать комментарии и многое другое. Open Source Free Android Tablet Android

OctoDroid icon

RepoZ

RepoZ — Облегченный агрегатор информации Git-репозитория для Windows и macOS с улучшениями для Windows Explorer и CLI Open Source Free Mac Windows

RepoZ icon

git-town

Рабочий слой на вершине ваниллы Git — отличная основа для управления исходным кодом. Он предоставляет все необходимые функциональные возможности и одинаково хорошо поддерживает множество различных способов его использования. Это намеренно общий и ос… Open Source Free Linux Mac Windows

git-town icon

SubGit

SubGit — это инструмент для плавной миграции SVN в Git без стресса. Создайте доступное для записи зеркало Git из локального или удаленного хранилища Subversion и используйте как Subversion, так и Git столько, сколько вам нужно. Вы также можете выпол… Freemium Web-Based

SubGit icon

Gity

Gity — это приятный графический интерфейс для большинства наиболее распространенных команд git. Он также предоставляет представление diff, чтобы увидеть изменения в рабочем дереве, изменения в индексе (стадии) и другие. Gity упрощает использование g… Open Source Free Mac

Gity icon

ForkHub

ForkHub — это GitHub-клиент с открытым исходным кодом, который был запущен как официальное приложение для Android от GitHub после того, как они отказались от него, и с тех пор увидел множество улучшений. Вы можете увидеть полный список изменений в ж… Open Source Free F-Droid Android Tablet Android

ForkHub icon

Springloops

Springloops — это уникальный инструмент управления исходным кодом SVN / Git, ориентированный на команды веб-разработчиков. Это позволяет вам кодировать параллельно и делиться вашим кодом безопасно, сосредоточившись на результатах, а не на потерянных… Freemium Linux Mac Windows Web-Based

Springloops icon

Sourcetree

Мощный клиент для Mac и Windows для распределенных систем контроля версий Mercurial и Git. Sourcetree устраняет сложность DVCS и делает ее пригодной для простых смертных. • Git Large File Support — Sourcetree поддерживает Git LFS, что позволяет кома… Free Mac Windows

Sourcetree icon

GitKraken

Интуитивно понятный, быстрый и красивый кроссплатформенный Git-клиент. Free Personal Linux Mac Windows

GitKraken icon

SmartGit

SmartGit является интерфейсом для распределенной системы контроля версий Git и работает в Windows, Mac OS X и Linux. SmartGit предназначен для разработчиков, которые предпочитают графический интерфейс пользователя клиенту командной строки, чтобы быт… Free Personal Java Linux Mac Windows

SmartGit icon

GitHub Desktop

Простое сотрудничество с вашего рабочего стола GitHub Desktop — это удобный способ внести свой вклад в проекты на GitHub и GitHub Enterprise. Доступно для Mac и Windows Вы найдете все проекты, над которыми работаете, на боковой панели. Если вы начин… Open Source Free Mac Windows

GitHub Desktop icon

TortoiseGit

TortoiseGit is a Windows Shell Interface to Git and based on TortoiseSVN . It’s open source and can fully be build with freely available software. Free Windows

TortoiseGit icon

git-cola

git-cola — это мощный графический интерфейс для git, распределенной системы контроля версий. Ингредиенты колы включают в себя git-python и jsonpickle. кола выпускается под GNU GPL v2. Open Source Free Linux Mac Windows

git-cola icon

gitg

gitg — это средство просмотра репозитория git, ориентированное на gtk + / GNOME. Одна из его основных задач — обеспечить более унифицированный пользовательский интерфейс для интерфейсов git на нескольких рабочих столах. Это делается не для написания… Open Source Free Linux Mac Windows

gitg icon

Tower

Tower — это собственный Git-клиент для настольных компьютеров, как для MacOS, так и для Windows. Приложение предоставляет разработчикам, дизайнерам и нетехническим специалистам легкий доступ ко всем возможностям Git с помощью таких функций, как запр… Commercial Mac Windows

Tower icon

What is in this list?

Alternatives to Git Extensions for Web, Android, iPhone, Windows, iPad and more. Filter by license to discover only free or Open Source alternatives. This list contains a total of 27 apps similar to Git Extensions.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *