# Подключение к существующему репозиторию
Если у вас уже есть приложение, которое вы хотите развернуть в Amvera, но оно уже использует другой репозиторий git
(GitHub, Bitbucket или что-то другое), можно привязать дополнительный remote к вашему репозиторию.
```{eval-rst}
.. admonition:: Подсказка
:class: hint
Для ознакомления с принципом работы с git рекомендуем `эту статью `_, которая
упротит работу с нашим сервисом.
```
Адрес удаленного репозитория находится на странице "Репозиторий" приложения.
![python_config](../../img/git_main.png)
## Подключение репозитория
Откройте командную строку и перейдите в корневую папку проекта вашего приложения. Выполните команду:
```shell
git remote add amvera https://git.amvera.ru/<имя-пользователя>/<транслитерированное-имя-проекта>
```
## Заполнение репозитория
Чтобы код можно было собрать и запустить, необходимо наличие
[файла конфигурации amvera.yaml](../configuration/config-file.md) и/или [Dockerfile](../configuration/docker.md).
Советуем так-же ознакомится с процессом [сборки](../build.md) и [развертывания](../run.md) приложения.
## Развертывание проекта
Для инициализации процесса сборки и развертывания приложения достаточно отправить изменения в репозиторий Амвера.
```shell
git push amvera master
```
На запрос пользователя и пароля укажите имя пользователя и пароль вашей учетной записи Amvera.
```{eval-rst}
.. admonition:: Подсказка
:class: hint
Запущенные инстансы вашего проекта при ошибке сборки не останавливаются и продолжат работать.
```
## Пример
1. Вызываем терминал в IDE, где открыто приложение, или открываем папку проекта в терминале.
2. Инициализируем локальный гит репозиторий командой (если он не инициализирован)
```shell
git init
```
3. Добавим удаленный репозиторий нашего проекта (url вашего репозитория будет отличаться. Во избежание синтаксических
ошибок скопируйте ссылку на втором шаге создания проекта)
```shell
git remote add amvera https://git.amvera.ru/Ваш_Ник/Имя_проекта
```
```{eval-rst}
.. admonition:: Важно
:class: warning
Если вы задавали конфигурацию в интерфейсе, не забудьте сделать git pull (git pull amvera master) для синхронизации
репозиториев. Если вы не хотите синхронизировать репозитории, то создайте yaml по `ссылке `_,
добавьте его в корень репозитория перед певым push. При этом не добавляйте/задавайте конфигурацию в интерфейсе.
Задание конфигурации и добавление файлов в интерфейсе создает коммит, после которого нужно синхронизировать репозитории при работе через git.
```
4. Добавим файлы и сделаем первый коммит.
```shell
git add .
git commit -m "initial commit"
```
5. Запушим наш код в репозиторий проекта
```shell
git push amvera master
```
6. Когда вы хотите сделать обновление проекта (вы обновили код/конфигурацию/зависимости), выполните команды:
```shell
git add .
git commit -m "Описание сделанных изменений"
git push amvera master
```
## Возможные ошибки
Если основная ветка называется не `master`, а, например, `main`, при выполнении команды `git push amvera master` появится ошибка.
Для избежания ошибки достаточно указать, из какой ветки необходимо запушить изменения:
```shell
git push amvera имя_основной_ветки:master
```
Так, например, если основная ветка называется `main`, команда будет выглядеть следующим образом:
```shell
git push amvera main:master
```
Чтобы узнать, какое название имеет основная ветка (в предположении, что вы на ней находитесь):
```shell
git branch --show-current
```
```{eval-rst}
.. admonition:: Примечание
:class: hint
Другие частые ошибки по работе с Git собраны по :doc:`ссылке `
```
### Если вы столкнулись с ошибкой или вам что-то непонятно
- Ознакомьтесь с разделом [Частые ошибки](../git/freq-errors.md) при работе с Git