Этот пример демонстрирует создание бесплатного публичного репозитория на сайте github.com и
версионирование вашего проекта в этом репозитории.
Примечание: При необходимости можно аналогичным образом использовать
приватные платные репозитории на этом же сайте или воспользоваться другими сервисами для
создания удаленных репозиториев, например Sourceforge, Google Cloud Source Repositories
и другими.
Совет: Предполагается, что у вас в 1C:EDT уже существует проект, который вы
разрабатываете. Если нет, то вы можете:
- Либо создать новый
проект пустой конфигурации;
- Либо импортировать конфигурацию в новый проект из существующей
информационной базы.
Подключить проект к локальному репозиторию
Сейчас вы создадите локальный репозиторий Git на своем компьютере и подключите проект
к этому репозиторию. На схеме это выглядит следующим образом:
- Запустите 1C:EDT или перейдите в нее, если она у вас уже запущена;
- Убедитесь, что вы находитесь в перспективе 1C:Enterprise. Когда это так, в панели
перспектив выделен значок (1C:Enterprise):
- Если вы находитесь в другой перспективе, нажмите на этот значок и
перейдите в перспективу 1C:Enterprise;
- Если в панели перспектив нет такого значка, нажмите в панели перспектив;
- Для проекта, который вы хотите поместить в репозиторий, в панели Навигатор нажмите в контекстном меню;
- Задайте основные свойства локального репозитория, который будет располагаться на вашем
компьютере:
Предупреждение: Когда вы создаете локальный
репозиторий, создавайте его таким образом, чтобы каталог репозитория и рабочая область
1C:EDT не находились в иерархии друг друга. Подробнее об этом
читайте
здесь.
- В поле Репозиторий укажите каталог, в котором
будет размещаться репозиторий;
- Нажмите Готово;
- 1C:EDT переместит ваш проект в каталог репозитория. В результате вы увидите следующие
изменения:
- В панели перспектив нажмите (1C:Enterprise) чтобы
вернуться обратно в перспективу 1C:Enterprise.
Зафиксировать изменения конфигурации
Сейчас вы создадите первый коммит своего проекта, в результате чего проект окажется в
локальном репозитории. На схеме это выглядит следующим образом:
- В панели Навигатор нажмите в контекстном меню проекта, который вы подключили к локальному
репозиторию. Откроется панель Индексирование
Git, в поле Неиндексированные
изменения будут находиться файлы вашего проекта;
- Создайте коммит:
- Нажмите (Добавить
все файлы в индекс) в командной панели неиндексированных изменений. Через некоторое время
все файлы будут перенесены в поле Индексированные
изменения;
- В поле Сообщение коммита введите комментарий,
описывающий суть ваших изменений;
- Нажмите Фиксировать;
- В результате все поля в панели Индексирование
Git очистятся, а в панели Навигатор перед именем проекта исчезнет
угловая кавычка >. Она говорила о том, что состояние файлов проекта в рабочем
каталоге отличается от того, что находится в репозитории (ведь в репозитории
ничего не было).
Зарегистрироваться на сайте GitHub
Сейчас вы создадите учетную запись на сайте GitHub. На схеме это выглядит следующим
образом:
- Откройте в браузере страницу github.com;
- Нажмите Sign up в правом верхнем углу;
- Введите свой адрес электронной почты и нажмите
Continue;
- Введите свой будущий пароль и нажмите
Continue;
- Введите свое будущее имя пользователя и нажмите
Continue;
- Можете, по желанию, установить флажок, чтобы получать объявления о продуктах и
обновления. Нажмите Continue;
- GitHub попросит вас решить задачу, нажмите
Проверить;
- Расположите предмет нужным образом и нажмите
Отправить;
- Введите проверочный код, высланный вам на электронную почту;
- Войдите в свою учетную запись: введите имя пользователя, пароль, и нажмите
Sign in;
- Укажите, что работать с репозиторием будете только вы (Just
me), и нажмите Continue;
- Не выбирайте никакие инструменты, а просто нажмите
Continue;
- Нажмите Continue for free чтобы выбрать бесплатный план
обслуживания;
- После этого вы окажетесь на главной странице своего аккаунта в
GitHub.
Создать удаленный репозиторий на GitHub
Сейчас вы создадите пустой удаленный репозиторий на сайте GitHub. На схеме это
выглядит следующим образом:
- На главной странице GitHub заполните основные свойства будущего репозитория:
- В поле Repository name введите имя будущего
репозитория;
- Установите флажок Public, чтобы все могли видеть
ваш репозиторий;
- Нажмите Create a new repository.
- GitHub создаст репозиторий и откроет его главную страницу;
Получить токен доступа
Сейчас вы на сайте GitHub получите токен доступа. Токен доступа — это как пароль для
пользователя, только токен предназначен не для человека, а для программы. Токен
доступа будет использовать 1C:EDT для авторизации на GitHub в тех случаях, когда вы
отправляете туда изменения своего проекта.
- На главной странице GitHub откройте меню своего профиля, нажав на иконку в
правом верхнем углу экрана;
- Нажмите Settings в нижней части меню;
- Пролистайте экран вниз и нажмите Developer settings в
левом меню;
- В левом меню раскройте группу Personal access tokens и
нажмите Token (classic);
- Раскройте список Generate new token и нажмите
Generate new token (classic);
- Возможно GitHub попросит вас авторизоваться еще раз — введите свой пароль и
нажмите Confirm;
- Заполните параметры будущего токена:
- Note — имя токена, которое позволит вам отличать
один свой токен от другого;
- Expiration — в учебных целях можете выбрать здесь
No expiration, но для реальной работы
рекомендуется указывать дату не больше года;
- Select scopes — установите все флажки, чтобы
иметь доступ ко всем областям;
- Пролистайте страницу вниз и нажмите Generate
token;
- Скопируйте полученный токен и сохраните его. Он понадобится вам в качестве
пароля, когда вы будете настраивать отправку изменений в удаленный
репозиторий;
Отправить ветку в удаленный репозиторий
Сейчас вы настроите связь вашего локального репозитория с удаленным репозиторием на
GitHub и первый раз отправите в него свои изменения. На схеме это выглядит следующим
образом:
- Запустите 1C:EDT или перейдите в нее, если она у вас уже запущена;
- Убедитесь, что вы находитесь в перспективе 1C:Enterprise, в ней у вас с правой
стороны осталась открыта панель Индексирование
Git. Если ее нет, нажмите чтобы открыть ее;
- В нижней части этой панели нажмите Отправить
HEAD...;
- Здесь вам нужно будет заполнить основные свойства вашего удаленного репозитория,
расположенного на GitHub:
- URI — путь к репозиторию. Его нужно будет
скопировать из GitHub;
- Пользователь — ваше имя пользователя в
GitHub;
- Пароль — токен доступа, который вы сохранили на
предыдущем шаге;
- Чтобы узнать путь к репозиторию GitHub, откройте вкладку браузера, на которой вы
получали токен;
- Нажмите значок меню в левом верхнем углу экрана, а затем Home. Вы
окажетесь на главной странице;
- Ваши репозитории перечислены слева, нажмите на свой репозиторий;
- Убедитесь, что выделен протокол доступа HTTPS и скопируйте адрес
репозитория;
- Перейдите в 1C:EDT, заполните свойства удаленного репозитория и установите
флажок Сохранить в защищенном хранилище. Нажмите
Далее;
- На этом экране ничего менять не надо, стандартные настройки удаленного
репозитория вас устраивают. Нажмите Далее;
- 1C:EDT попросит вас подтвердить результат отправки: что ваша ветка
master будет отправлена в удаленный репозиторий
MyProject в его ветку master.
Значения флажков, установленные стандартно, вас сейчас устраивают, их менять не
надо. Просто нажмите Отправить;
- За ходом отправки можно наблюдать в правом нижнем углу экрана.
- Через некоторое время 1C:EDT покажет результат отправки;
- Все хорошо, в удаленном репозитории создана новая ветка
master. Нажмите Закрыть.
На этом настройка связи с удаленным репозиторием и первая отправка изменений
завершены.
Просмотреть историю изменений и отправить изменения в удаленный репозиторий
Сейчас вы посмотрите, как выглядит история изменений, хранящихся в локальном и в
удаленном репозитории. Также вы посмотрите, как происходит обычная работа с этими
репозиториями.
- Для просмотра изменений в локальном и удаленном репозитории вам понадобится
панель История. В панели
Навигатор нажмите в контекстном меню проекта;
- Панель откроется во всплывающем
режиме в правом верхнем углу экрана, вместе с панелью Ошибки
конфигурации. Чтобы она всегда была на виду,
разверните эту группу панелей. Для этого нажмите на значок (Восстановить). Группа панелей
зафиксируется в нижней части экрана;
- Сейчас в панели История
есть единственный коммит. Он расположен в локальном репозитории в ветке
master. На это указывает зеленый значок. Зеленым
цветом 1C:EDT обозначает локальные ветки.
- Кроме этого видно, что этот же коммит находится в удаленном репозитории в его
ветке master. На это указывает серый значок. Серым цветом
1C:EDT обозначает ветки удаленного отслеживания. «origin» — это стандартное имя
удаленного репозитория. Оно было задано во время настройки
отправки, см. п.9;
- Чтобы в дальнейшем вам было удобнее наблюдать за изменениями, переключите панель
История в режим показа
всех изменений репозитория. Для этого раскройте фильтр, расположенный в ее
командной панели, и нажмите Все изменения в
репозитории;
- Сейчас вы сделаете несколько тренировочных коммитов, которые в последствии можно будет отменить.
- Внесите какие-нибудь изменения в конфигурацию (например, добавьте справочник) и зафиксируйте
их в локальном репозитории. Посмотрите, как изменится история. Для этого:
- В панели Навигатор
нажмите в контекстном меню ветки
Справочники;
- Добавьте все файлы в индекс;
- Напишите сообщение коммита;
- Нажмите Фиксировать
(см. Зафиксировать изменения конфигурации);
- Вы видите в панели История, что теперь
история вашего локального репозитория разошлась с историей удаленного
репозитория. У вас два коммита, последний из них с сообщением «Второй коммит».
На это указывает ваша локальная ветка. А в удаленном репозитории по прежнему
есть только один, первый коммит.
- Внесите еще одно изменение, например, аналогичным образом добавьте константу (). И зафиксируйте это изменение в локальном репозитории;
- Теперь вы видите, что история разошлась уже на два коммита, которые есть в вашем
локальном репозитории, но которых нет в удаленном.
Кстати, эта же информация отображается
и в панели Навигатор в
заголовке проекта. Стрелка вверх означает, что у вас есть коммиты, которые
еще не отправлены в удаленный репозиторий. Таких коммитов два;
- Теперь предположим, вы выполнили еще одно изменение проекта и на этом ваша
задача завершена. Ее результаты нужно отправить в удаленный репозиторий, чтобы
их могли использовать другие разработчики.
Для этого, например, добавьте
документ () и в конце нажмите другую кнопку — Фиксировать и отправить...;
- Через некоторое время вы увидите, что после того, как изменения были зафиксированы в
локальном репозитории, 1C:EDT отправила их в удаленный репозиторий и показала
результат отправки. Три коммита, которые отсутствовали в удаленном репозитории,
отправлены в ветку master.
В результате истории локального и
удаленного репозиториев сравнялись. Это видно в панели История: указатели веток
показывают на один и тот же последний коммит.
Также, если вы
посмотрите на заголовок проекта в панели Навигатор, то увидите, что там
пропали значки, обозначающие количество непереданных коммитов.
Отменить коммиты
Второй, третий и четвертый коммиты, созданные в предыдущем разделе, были тестовые. Сейчас вы
их отмените так, что история хранилища вернется к началу, когда у вас был
единственный первый коммит.
- В панели История выделите
первый коммит;
- В его контекстном меню нажмите ;
- 1C:EDT попросит вас подтвердить это действие — нажмите
Сброс;
- В истории локального репозитория останется только первый коммит. На него будет
указывать ветка master;
- В панели Навигатор, однако,
будет видно, что в удаленном репозитории остались три коммита, которые не
получены в локальный репозиторий. Это те коммиты, которые вы здесь сбросили:
второй, третий и четвертый;
- Чтобы история удаленного репозитория стала такой-же, как в локальном
репозитории, отправьте изменения в удаленный репозиторий. В панели Индексирование Git нажмите
Отправить HEAD...;
- Установите флажок Принудительно перезаписывать ветку в удаленном репозитории,
если она существует и разошлась, нажмите
Отправить;
ОПАСНО
Используйте этот флажок с большой осторожностью! Обычно Git не позволяет
обновлять удаленную ветку, которая не является предком локальной ветки, как
в вашем случае. Это сделано для того, чтобы не потерять коммиты удаленного
репозитория, которых нет в вашей локальной ветке (например, другие
разработчики поместили их в удаленную ветку).
Установка этого флажка
снимает эту защиту и позволяет вам перезаписать удаленную ветку тем, что
находится в вашей локальной ветке. Это можно делать только в том случае,
когда вы точно уверены, что такая перезапись удаленной ветки не повредит
ни вам, ни другим разработчикам.
- 1C:EDT сообщит об успешной отправке, а если вы посмотрите на заголовок проекта в панели
Навигатор, то увидите,
что там пропали значки, обозначающие количество непринятых коммитов.