2.11.6. Работа с 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