Введение в EGit
1. обзор
В этой статье мы собираемся изучить EGit - эволюцию библиотеки JGit для Eclipse.
2. Настройка EGit
В статье мы будем использовать следующие инструменты:
-
Eclipse Neon.3 версия 4.6.3
-
Плагин EGit версия 4.8
2.1. Установка EGit в Eclipse
Начиная с Eclipse Juno, EGit входит в состав самого Eclipse.
Для более старых версий Eclipse мы можем установить плагин черезHelp → Install New Software и предоставить URLhttp://download.eclipse.org/egit/updates:
2.2. Определение коммитера
Git должен отслеживать пользователя за коммитом, поэтому мы должны предоставить нашу личность, когда мы совершаем коммиты через EGit.
Это делается с помощьюPreferences → Team → Git → Configuration и нажатия наAdd Entry, чтобы включить информацию дляuser.name иuser.email:
3. Хранилища
3.1. Просмотр репозиториев
EGit поставляется с представлением Repositories, которое позволяет нам:
-
Просмотрите наш локальный репозиторий
-
Добавить и инициализировать локальные репозитории
-
Удалить репозитории
-
Клонировать удаленные репозитории
-
Проверьте проекты
-
Управление филиалами
Чтобы открыть представление репозиториев, щелкнитеWindow → Show View → Other → Git → Git Repositories:
3.2. Создание нового репозитория
Нам нужно создать проект и щелкнуть по нему правой кнопкой мыши, чтобы выбратьTeam → Share Project, иCreate.
Отсюда мы выбираем каталог репозитория и нажимаемFinish:
3.3. Клонирование репозитория
Мы можем клонировать репозиторий с удаленного сервера git в нашу локальную файловую систему.
Перейдем кFile → Import… → Git → Projects from Git → Next → Clone URI → Next,, после чего появится ** следующее окно:
Мы также можем открыть то же окно с помощью кнопки панели инструментовClone Remote Repository на вкладке просмотраRepositories.
Git поддерживает несколько протоколов, таких как https, ssh, git и т. Д. Если мы вставим URI удаленного репозитория, другие записи будут заполнены автоматически.
4. ветви
Мы будем иметь дело с двумя типами веток:
-
Местное отделение
-
Удаленное отслеживание ветки
4.1. Создание местного отделения
Мы можем создать новую локальную ветку, нажавTeam → Repository → Switch to → New Branch:
Мы можем выбрать удаленную ветку отслеживания, из которой будет основано наше местное отделение. Добавление исходной конфигурации в наши новые локальные филиалы упростит синхронизацию локальных изменений с удаленными.
Рекомендуется установить флажок в диалоговом окнеConfigure upstream for push and pull.
Другой способ открыть диалоговое окно новой ветки, щелкнув правой кнопкой мыши ветки вRepositories view → Switch To → New Branch.
5. Отслеживание файлов с помощью Git
5.1. Отслеживание изменений
Знаки вопроса появляются на файлах, которые еще не находятся под контролем Git. Мы можем отслеживать эти новые файлы, щелкнув их правой кнопкой мыши и выбравTeam → Add to Index.
Отсюда декоратор должен измениться на(+) sign.
5.2. Фиксация изменений
Мы хотим зафиксировать изменения в отслеживаемых файлах. Для этого щелкните эти файлы правой кнопкой мыши и выберитеTeam → Commit:.
По умолчанию автор и коммиттер берутся из файла.gitconfig в нашем домашнем каталоге.
Мы можем ввести сообщение коммита, чтобы объяснить изменения. Кроме того, щелкнув значокAdd Signed-off-by в правом верхнем углу, мы можем добавить тегSigned-off-by.
5.3. Изучение истории
Мы можем проверить историю файла, щелкнув его правой кнопкой мыши и выбравTeam → Show in History.
Диалоговое окно истории покажет все зафиксированные изменения проверенного файла:
Мы можем открыть последние зафиксированные изменения в представлении сравнения, щелкнув значок режима сравнения в правом верхнем углу на вкладке истории, а затем дважды щелкнув имя файла (вот пример:HelloEgit/src/HelloEgitClass.java) в списке файлов. :
5.4. Отправка изменений в удаленный репозиторий
Для продвижения наших изменений нам нужно иметь удаленный Git-репозиторий.
ИзTeam → Remote → Push мы можем ввести https URL-адрес нового удаленного репозитория Git в мастере:
Следующие шаги должны:
-
ВыберитеAdd All Branches Spec, чтобы сопоставить имена локальных веток с теми же именами веток в целевом репозитории.
-
Нажмите кнопку подтверждения - мастер покажет предварительный просмотр измененных файлов
-
Наконец, мы нажимаемFinish, чтобы переместить наш репозиторий в удаленное место.
Если мы настроили Upstream Configuration из раздела 4.1, это диалоговое окно конфигурации не будет отображаться, и push будет намного проще.
5.5. Получение из апстрима
Если мы работаем с локальной ветвью, которая основана на удаленной ветке отслеживания, мы можем теперь получать изменения из восходящего потока.
Чтобы выполнить выборку из восходящего потока, мы щелкаем правой кнопкой мышиproject и выбираемTeam → Fetch from Upstream (или щелкаем правой кнопкой мыши репозиторий наRepositories View и выбираемFetch from Upstream).
Эту выборку можно настроить, щелкнув проект правой кнопкой мыши и выбравTeam → Remote → Configure Fetch from Upstream:.
5.6. Сравнение и синхронизация
Если мы хотим увидеть изменения между локальным рабочим каталогом и зафиксированным изменением, мы можем щелкнуть правой кнопкой мыши по ресурсу и выбратьCompare With. Это открываетSynchronize View, чтобы мы могли просматривать изменения:
Если дважды щелкнуть измененный файл, откроется редактор сравнения, что позволит нам сравнить изменения.
Если мы хотим сравнить две фиксации, нам нужно выбратьTeam → Show in History.
В режиме просмотра истории мы выделим два коммита, которые хотим сравнить, и выберем вариантCompare with Each Other:
Если мы хотим сравнить рабочий каталог и ветку, мы можем использоватьTeam → Synchronize
5.7. сращивание
Слияние включает в себя изменения из одной ветви или тега в текущую извлеченную ветку.
Мы можем объединиться, щелкнувTeam → Merge или щелкнув правой кнопкой мыши имя репозитория в представлении репозиториев и выбравMerge:
Теперь мы можем выбрать ветку или тег, который мы хотим объединить с текущей извлеченной веткой.
6. Заключение
В этом уроке мы представили плагин EGit для eclipse, как его установить и настроить и как использовать в нашей повседневной разработке.
Для получения дополнительных сведений о EGit ознакомьтесь с его официальной документациейhere.