2.10.10. Робота з Git
Якщо вам потрібно, щоб ваш репозиторій був недоступний стороннім і всі дії з ним повністю контролювалися вами, можете створити власний Git-сервер, виконавши дії, описані нижче.
Налаштування сервера
Git на хостингу встановлений за замовчуванням:
[example@hosting]$ git --version git version 2.16.1
Виконайте наступні дії:
- Перейдіть в домашній каталог:
cd ~
- Створіть каталог для проекту Git:
mkdir repo.git
- Перейдіть в створений каталог:
cd repo.git
- Створюєте порожній репозиторій Git (параметр
bare
створює репозиторій без робочого каталогу, ви не зможете виконувати з сервера командиgit add
,commit
і т.д.:git init --bare
- Перевірте, створилися чи каталоги сховища, виконавши команду
ls
:[example@hosting]$ ls branches config description HEAD hooks info objects refs
Налаштування локального ПК
Для створення Git-сховища існують два основні підходи:
- Імпорт в Git вже існуючого проекту або каталогу.
- Клонування вже існуючого сховища з сервера командою
git clone
.
Скористаємося першим.
Виконайте наступні дії:
- Створіть в домашньому каталозі користувача каталог для проекту Git і перейдіть в нього, виконавши команди:
cd ~ mkdir repo cd repo
- Ініціалізуйте репозиторій:
git init
- Перевірте, що склалося в каталозі сховища, виконавши команду
ls -a
:[example@hosting]$ ls -a . .. .git
В цьому каталозі ви будете працювати з файлами проекту, а в прихованому каталозі .git зберігається вся історія Git і мета-інформація вашого проекту, включаючи всі об'єкти (коммітов, дерева, БЛОБ, таги), всі покажчики на різні гілки і багато іншого.
- Створіть 3 тестових файлу:
touch index.php index1.php index2.php
- Додайте файли в індекс:
git add .
- Виконайте Комміт файлів:
git commit -m 'First commit'
- Додайте віддалений репозиторій:
git remote add developer логін@хост:/home/ім'я_хостинг_аккаунта/repo.git
- Перевірте, які зміни будуть відправлені на сервер:
git status
Видно, що поточною є гілка master і на сервер буде завантажено 3 нові порожні файли:
[example@hosting]$ git status On branch master No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: index.php new file: index1.php new file: index2.php
- Надішліть файли з локального ПК з гілки master на сервер developer:
git push developer master
- Якщо необхідно отримати зміни з сервера, використовуйте команду:
git pull developer master