191 документ
← К списку

Создать удаленный репозиторий на GitHub и поместить конфигурацию в него

страница

Этот пример демонстрирует создание бесплатного публичного репозитория на сайте github.com и версионирование вашего проекта в этом репозитории.

Примечание: При необходимости можно аналогичным образом использовать приватные платные репозитории на этом же сайте или воспользоваться другими сервисами для создания удаленных репозиториев, например Sourceforge, Google Cloud Source Repositories и другими.

Совет: Предполагается, что у вас в 1C:EDT уже существует проект, который вы разрабатываете. Если нет, то вы можете:

  • Либо создать новый проект пустой конфигурации;
  • Либо импортировать конфигурацию в новый проект из существующей информационной базы.

Пример состоит из нескольких частей:

  1. Подключить проект к локальному репозиторию
  2. Зафиксировать изменения конфигурации
  3. Зарегистрироваться на сайте GitHub
  4. Создать удаленный репозиторий на GitHub
  5. Получить токен доступа
  6. Отправить ветку в удаленный репозиторий
  7. Просмотреть историю изменений и отправить изменения в удаленный репозиторий
  8. Отменить коммиты

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

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

  1. Запустите 1C:EDT или перейдите в нее, если она у вас уже запущена;

  2. Убедитесь, что вы находитесь в перспективе 1C:Enterprise. Когда это так, в панели перспектив выделен значок (1C:Enterprise):

    • Если вы находитесь в другой перспективе, нажмите на этот значок и перейдите в перспективу 1C:Enterprise;

    • Если в панели перспектив нет такого значка, нажмите > 1C:Enterprise (по умолчанию) > Открыть в панели перспектив;

  3. Для проекта, который вы хотите поместить в репозиторий, в панели Навигатор нажмите Групповая разработка > Общий проект... в контекстном меню;

  4. Задайте основные свойства локального репозитория, который будет располагаться на вашем компьютере:

    Предупреждение: Когда вы создаете локальный репозиторий, создавайте его таким образом, чтобы каталог репозитория и рабочая область 1C:EDT не находились в иерархии друг друга. Подробнее об этом читайте здесь.

    • В поле Репозиторий укажите каталог, в котором будет размещаться репозиторий;
    • Нажмите Готово;

  5. 1C:EDT переместит ваш проект в каталог репозитория. В результате вы увидите следующие изменения:

    • В контекстном меню Групповая разработка проекта появятся команды работы с репозиторием;

    • Перейдите в перспективу Git, для этого нажмите > Git > Открыть в панели перспектив;

      Здесь в панели Репозитории Git появился ваш локальный репозиторий. В его рабочем каталоге находится структура вашего проекта с файлами:

  6. В панели перспектив нажмите (1C:Enterprise) чтобы вернуться обратно в перспективу 1C:Enterprise.

Зафиксировать изменения конфигурации

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

  1. В панели Навигатор нажмите Групповая разработка > Фиксировать (commit)... в контекстном меню проекта, который вы подключили к локальному репозиторию. Откроется панель Индексирование Git, в поле Неиндексированные изменения будут находиться файлы вашего проекта;
  2. Создайте коммит:
    • Нажмите (Добавить все файлы в индекс) в командной панели неиндексированных изменений. Через некоторое время все файлы будут перенесены в поле Индексированные изменения;

    • В поле Сообщение коммита введите комментарий, описывающий суть ваших изменений;

    • Нажмите Фиксировать;

  3. В результате все поля в панели Индексирование Git очистятся, а в панели Навигатор перед именем проекта исчезнет угловая кавычка >. Она говорила о том, что состояние файлов проекта в рабочем каталоге отличается от того, что находится в репозитории (ведь в репозитории ничего не было).

Зарегистрироваться на сайте GitHub

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

  1. Откройте в браузере страницу github.com;

  2. Нажмите Sign up в правом верхнем углу;

  3. Введите свой адрес электронной почты и нажмите Continue;

  4. Введите свой будущий пароль и нажмите Continue;

  5. Введите свое будущее имя пользователя и нажмите Continue;

  6. Можете, по желанию, установить флажок, чтобы получать объявления о продуктах и обновления. Нажмите Continue;

  7. GitHub попросит вас решить задачу, нажмите Проверить;

  8. Расположите предмет нужным образом и нажмите Отправить;

  9. Введите проверочный код, высланный вам на электронную почту;

  10. Войдите в свою учетную запись: введите имя пользователя, пароль, и нажмите Sign in;

  11. Укажите, что работать с репозиторием будете только вы (Just me), и нажмите Continue;

  12. Не выбирайте никакие инструменты, а просто нажмите Continue;

  13. Нажмите Continue for free чтобы выбрать бесплатный план обслуживания;

  14. После этого вы окажетесь на главной странице своего аккаунта в GitHub.

Создать удаленный репозиторий на GitHub

Сейчас вы создадите пустой удаленный репозиторий на сайте GitHub. На схеме это выглядит следующим образом:

  1. На главной странице GitHub заполните основные свойства будущего репозитория:

    • В поле Repository name введите имя будущего репозитория;
    • Установите флажок Public, чтобы все могли видеть ваш репозиторий;
    • Нажмите Create a new repository.

  2. GitHub создаст репозиторий и откроет его главную страницу;

Получить токен доступа

Сейчас вы на сайте GitHub получите токен доступа. Токен доступа — это как пароль для пользователя, только токен предназначен не для человека, а для программы. Токен доступа будет использовать 1C:EDT для авторизации на GitHub в тех случаях, когда вы отправляете туда изменения своего проекта.

  1. На главной странице GitHub откройте меню своего профиля, нажав на иконку в правом верхнем углу экрана;

  2. Нажмите Settings в нижней части меню;

  3. Пролистайте экран вниз и нажмите Developer settings в левом меню;

  4. В левом меню раскройте группу Personal access tokens и нажмите Token (classic);

  5. Раскройте список Generate new token и нажмите Generate new token (classic);

  6. Возможно GitHub попросит вас авторизоваться еще раз — введите свой пароль и нажмите Confirm;

  7. Заполните параметры будущего токена:

    • Note — имя токена, которое позволит вам отличать один свой токен от другого;
    • Expiration — в учебных целях можете выбрать здесь No expiration, но для реальной работы рекомендуется указывать дату не больше года;
    • Select scopes — установите все флажки, чтобы иметь доступ ко всем областям;

  8. Пролистайте страницу вниз и нажмите Generate token;

  9. Скопируйте полученный токен и сохраните его. Он понадобится вам в качестве пароля, когда вы будете настраивать отправку изменений в удаленный репозиторий;

Отправить ветку в удаленный репозиторий

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

  1. Запустите 1C:EDT или перейдите в нее, если она у вас уже запущена;

  2. Убедитесь, что вы находитесь в перспективе 1C:Enterprise, в ней у вас с правой стороны осталась открыта панель Индексирование Git. Если ее нет, нажмите Окно > Показать панель > Другое… > Git > Индексирование Git чтобы открыть ее;

  3. В нижней части этой панели нажмите Отправить HEAD...;

  4. Здесь вам нужно будет заполнить основные свойства вашего удаленного репозитория, расположенного на GitHub:

    • URI — путь к репозиторию. Его нужно будет скопировать из GitHub;
    • Пользователь — ваше имя пользователя в GitHub;
    • Пароль — токен доступа, который вы сохранили на предыдущем шаге;

  5. Чтобы узнать путь к репозиторию GitHub, откройте вкладку браузера, на которой вы получали токен;

  6. Нажмите значок меню в левом верхнем углу экрана, а затем Home. Вы окажетесь на главной странице;

  7. Ваши репозитории перечислены слева, нажмите на свой репозиторий;

  8. Убедитесь, что выделен протокол доступа HTTPS и скопируйте адрес репозитория;

  9. Перейдите в 1C:EDT, заполните свойства удаленного репозитория и установите флажок Сохранить в защищенном хранилище. Нажмите Далее;

  10. На этом экране ничего менять не надо, стандартные настройки удаленного репозитория вас устраивают. Нажмите Далее;

  11. 1C:EDT попросит вас подтвердить результат отправки: что ваша ветка master будет отправлена в удаленный репозиторий MyProject в его ветку master. Значения флажков, установленные стандартно, вас сейчас устраивают, их менять не надо. Просто нажмите Отправить;

  12. За ходом отправки можно наблюдать в правом нижнем углу экрана.

  13. Через некоторое время 1C:EDT покажет результат отправки;

  14. Все хорошо, в удаленном репозитории создана новая ветка master. Нажмите Закрыть.

На этом настройка связи с удаленным репозиторием и первая отправка изменений завершены.

Просмотреть историю изменений и отправить изменения в удаленный репозиторий

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

  1. Для просмотра изменений в локальном и удаленном репозитории вам понадобится панель История. В панели Навигатор нажмите Групповая разработка > Показать Историю в контекстном меню проекта;

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

  3. Сейчас в панели История есть единственный коммит. Он расположен в локальном репозитории в ветке master. На это указывает зеленый значок. Зеленым цветом 1C:EDT обозначает локальные ветки.

  4. Кроме этого видно, что этот же коммит находится в удаленном репозитории в его ветке master. На это указывает серый значок. Серым цветом 1C:EDT обозначает ветки удаленного отслеживания. «origin» — это стандартное имя удаленного репозитория. Оно было задано во время настройки отправки, см. п.9;

  5. Чтобы в дальнейшем вам было удобнее наблюдать за изменениями, переключите панель История в режим показа всех изменений репозитория. Для этого раскройте фильтр, расположенный в ее командной панели, и нажмите Все изменения в репозитории;

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

  7. Внесите какие-нибудь изменения в конфигурацию (например, добавьте справочник) и зафиксируйте их в локальном репозитории. Посмотрите, как изменится история. Для этого:

    1. В панели Навигатор нажмите Создать > Справочник > Готово в контекстном меню ветки Справочники;
    2. Добавьте все файлы в индекс;
    3. Напишите сообщение коммита;
    4. Нажмите Фиксировать (см. Зафиксировать изменения конфигурации);
  8. Вы видите в панели История, что теперь история вашего локального репозитория разошлась с историей удаленного репозитория. У вас два коммита, последний из них с сообщением «Второй коммит». На это указывает ваша локальная ветка. А в удаленном репозитории по прежнему есть только один, первый коммит.

  9. Внесите еще одно изменение, например, аналогичным образом добавьте константу (Создать > Константа > Готово). И зафиксируйте это изменение в локальном репозитории;

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

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

  11. Теперь предположим, вы выполнили еще одно изменение проекта и на этом ваша задача завершена. Ее результаты нужно отправить в удаленный репозиторий, чтобы их могли использовать другие разработчики.

    Для этого, например, добавьте документ (Создать > Документ > Готово) и в конце нажмите другую кнопку — Фиксировать и отправить...;

  12. Через некоторое время вы увидите, что после того, как изменения были зафиксированы в локальном репозитории, 1C:EDT отправила их в удаленный репозиторий и показала результат отправки. Три коммита, которые отсутствовали в удаленном репозитории, отправлены в ветку master.

    В результате истории локального и удаленного репозиториев сравнялись. Это видно в панели История: указатели веток показывают на один и тот же последний коммит.

    Также, если вы посмотрите на заголовок проекта в панели Навигатор, то увидите, что там пропали значки, обозначающие количество непереданных коммитов.

Отменить коммиты

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

  1. В панели История выделите первый коммит;

  2. В его контекстном меню нажмите Сброс (reset) > Жестко-hard (HEAD, индекс и рабочий каталог);

  3. 1C:EDT попросит вас подтвердить это действие — нажмите Сброс;

  4. В истории локального репозитория останется только первый коммит. На него будет указывать ветка master;

  5. В панели Навигатор, однако, будет видно, что в удаленном репозитории остались три коммита, которые не получены в локальный репозиторий. Это те коммиты, которые вы здесь сбросили: второй, третий и четвертый;

  6. Чтобы история удаленного репозитория стала такой-же, как в локальном репозитории, отправьте изменения в удаленный репозиторий. В панели Индексирование Git нажмите Отправить HEAD...;

  7. Установите флажок Принудительно перезаписывать ветку в удаленном репозитории, если она существует и разошлась, нажмите Отправить;

    ОПАСНО

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

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

  8. 1C:EDT сообщит об успешной отправке, а если вы посмотрите на заголовок проекта в панели Навигатор, то увидите, что там пропали значки, обозначающие количество непринятых коммитов.

На уровень выше: Примеры работы