# Перенести на сервер репозиторій разом з історією

Розробка із застосуванням GIT зазвичай починається з того, що спочатку програміст тримає локальний GIT репозиторій на своїй робочій машині, і щодня комітує до нього. Але настає момент, коли потрібно перенести репозиторій на сервер для спільної роботи чи синхронізації з різних комп'ютерів. Перенести треба разом із усією історією коммітів. У цій статті написано, як це зробити.

Отже, припустимо, що у нас створено на GitHub.com чи BitBucket.org новий репозиторій. URL цього репозиторію нехай буде наступним: `https://username@bitbucket.org/username/funnyproject.git`

Перебуваючи у робочій директорії, даємо дві команди:

```
git remote add server https://username@bitbucket.org/username/funnyproject.git
git push server master:master
```

Першою командою ми додали налаштування репозиторію URL сервера. Другою командою залили на сервер повну копію локального GIT репозиторію основної гілки.

Далі передбачається, що при виконанні команд push і pull, GIT повинен працювати з вищевказаним сервером. Іншими словами, сервер має бути встановлений за замовчуванням. Для цього обов'язково потрібно дати команду:

```
git config remote.origin.url https://username@bitbucket.org/username/funnyproject.git
```

Після якої `git push` і `git pull` будуть за замовчуванням працювати з сервером. Якщо цього не зробити, під час `push` буде помилка:

```
fatal: No destination configured to push to.
```

А при `pull` теж буде схожа помилка:

```
fatal: No remote repository specified. Please, specify either a URL або a
remote name from which new revisions should be fetched.
```

Так що встановлюйте значення конфігураційної змінної `remote.origin.url` в URL-сервері, як це показано вище.

Дізнатися, які налаштування зроблені в поточному репозиторії GIT можна за допомогою команди:

```
git config --list
```

Ну от, у принципі, і все. Нагадаю, про всяк випадок, набір команд, щоб закомітити зміни та відправити на сервер:

```
git add --all
git commit -m 'comment'
git push origin main
```

А перед початком роботи тепер потрібно синхронізуватися із сервером за допомогою команди:

```
git pull origin main
```

[посилання](https://webhamster.ru/site/page/index/articles/comp/216)
