Вы здесь
Обновление www-файлов на сервере с использованием git
- Для начала нам понадобится GIT.
Если вы работаете в ОС Linux, то можете собрать его из исходников или установить его средствами самой системы, например в RedHat, yum install git-all.
Если вы работаете в Windows, то необходимо скачать MSysGit. Тут вы можете скачать и файлы для самостоятельной сборки дистрибутива msysgit-(net|full)install.
Для пользователей MacOS есть своя разработка OSX Installer for Git.
В состав сборок Eclipse или входят модули для работы с Git или их можно установить из основного репозитария платформы (EGit и JGit). - В установке, я думаю, проблем не возникнет.
- После установки вам необходимо произвести начальные настройки git.
git config --global user.name "Your Name"
git config --global user.email "your_email@whatever.com"Определитесь, как вы хотите учитывать перевод строк в файлах.
Для mac/unix:git config --global core.autocrlf input
git config --global core.safecrlf trueДля win
git config --global core.autocrlf true
git config --global core.safecrlf true - Создаем пару ключей.
ssh-keygen -t rsa
У вас в личном каталоге ~/.ssh появятся 2 файла id_rsa и id_rsa.pub
Первый файл - приватный ключ (никому его не давайте и не показывайте).
Второй файл - публичный ключ, его можно показывать другим и размещать на серверах, например github.com, gitorious.com. Он нам понадобится в дальнейшем при настройке удаленного сервера. - Также необходимо установить git на сервере.
- Создаем общего пользователя для работы — git
- В его домашней директории создайте папку ~git/.ssh, файл ~git/.ssh/authorized_keys
- В содержимое файла внесите содержимое публичного(id_rsa.pub) ключа каждого из разработчиков. Каждый ключ с новой строки.
- Выставить права на папку ~git/.ssh - 700, на файл ~git/.ssh/authorized_keys - 600.
- Создаем репозитарий в профиле пользователя git. Например,
mkdir -pv ~git/repo/<reponame>.git && cd ~git/repo/<reponame>.git && git init --bare - Создаем папку для web-сервера, например
mkdir -pv /var/www/example.com/www - Настраиваем хук в созданном репозитарий:
vi ~git/repo/<reponame>.git/hooks/post-receiveВставляем код
#!/bin/sh
GIT_WORK_TREE=/var/www/example.com/www git checkout -f - Теперь каждый сотрудник может сделать локальную рабочую копию данных
- После своих изменений сделать commit, затем
git fetch origin
git rebase origin/masterчтобы быть уверенным, что у вас актуальные данные с сервера и отправить изменения
git push origin master
Вы также можете прочитать Git quick tips.