Налаштування GIT сховища для автоматичного застосування змін.
Що маємо:
1. Веб-сервер і директорія сайту (/ var / www / site / public), ззовні веб-сервер повинен давати доступ тільки до папки public для безпеки проекту, щоб не було можливості скачати файли git сховища.
2. IDE (в нашому випадку будемо розглядати Aptana).
Що потрібно:
1. Git репозиторій поточного сайту.
2. Автоматичне застосування змін на live копії сайту після виконання команди push розробником (з IDE або консолі).
3. Використання одного IDE для команди розробників.
Далі опис того, як досягти поставлених цілей.
1. Встановлюємо Git, приклад для debian (також git повинен бути встановлений на всіх комп'ютерах розробників):
2. Створюємо системного користувача, який буде керувати нашим git репозиторієм.
4. Далі створимо наш основний репозиторій для live сайту (не забуваємо дати новому системному користувачу права на каталог).
Для того, щоб додати всі поточні файли проекту під версійність контроль виконуємо команду add в цій же папці, а потім здійснюємо першу фіксацію змін:
Визначити стан файлів сховища можна виконавши наступну команду, після чого буде виведений текст про стан сховища:
5. Для того щоб здійснити первинне налаштування будь-якого Git-сервера, необхідно експортувати існуючий репозиторій в новий "голий" репозиторій, тобто репозиторій без робочого каталогу. Зазвичай це нескладно зробити. Щоб склоніровать ваше сховище і створити новий "голий" репозиторій, виконайте команду "clone" з параметром "--bare". За існуючою угодою, каталоги з голими репозиторіями закінчуються на ".git", це буде репозиторій, який розробники будуть завантажувати і в який будуть йти всі зміни:
6. Повернемося в каталог нашого сайту і додамо bare репозиторій, як віддалений репозиторій і відразу перевіримо додався він чи ні:
7. Тепер налаштуємо автоматичну синхронізацію цих двох репозиторіїв. Реалізується це за допомогою хуков.
Установка хука (перехоплювача), трохи інформації:
Все перехоплювачі зберігаються в підкаталозі hooks в Git-каталозі. У більшості проектів це .git / hooks. За замовчуванням Git заповнює цей каталог купою прикладів сценаріїв, багато з яких корисні самі по собі, але крім того в них задокументовані вхідні значення для кожного із сценаріїв. Всі ці приклади є сценаріями для командної оболонки з вкрапленнями Perl'а, але взагалі-то буде працювати будь-який виконуваний сценарій з правильним ім'ям - ви можете писати їх на Ruby або Python або на чомусь ще, що вам подобається. Ці файли з прикладами перехоплювачів закінчуються на .sample; вам треба їх перейменувати.
Щоб активувати сценарій-перехоплювач, покладіть файл в підкаталог hooks в Git-каталозі, дайте йому правильне ім'я і права на виконання. З цього моменту він буде викликатися. Детальніше.
Отже, маючи загальне уявлення про хуках, можна додати їх в наші репозиторії.
Для нашого bare сховища (/var/www/site.git) хукі будуть перебувати тут:
/var/www/site.git/hooks/
Додамо в bare репозиторій наступний хук з назва "post-update", як тільки в bare репозиторій надійдуть нові зміни від розробників, відразу буде виконаний цей скрипт. Скрипт виконує перехід в репозиторій з live копією сайту (/ var / www / site), і витягує измениния з bare сховища. Проштовхування змін (push) не змінює стану робочого каталогу сховища, тому і потрібно робити pull, перебуваючи в робочому каталозі. Розміщуємо цей код в хук "post-update":
Тут нам потрібно встановити ssh сервер, але в більшості unix-подібних систем він присутній за замовчуванням. Тому на цьому моменті зупинятися не будемо.
Для того, щоб віддалений користувач мав доступ до ssh нашого сервера, без перевірки пароля, створимо на його машині відкритий ssh ключ, який можна згенерувати за допомогою такої команди (відповівши на питання):
$ Ssh-keygen
Тепер цей користувач повинен послати свій відкритий ключ вам або того, хто адмініструє Git-сервер (припустимо, що ваш SSH-сервер уже налаштований на роботу з відкритими ключами). Для цього потрібно скопіювати весь вміст файлу з розширенням .pub і розмістити на сервері в каталозі нашого користувача (gituser), у файлі "authorized_keys":
9. Для імпорту проекту з git сервера в IDE Aptana виконуємо наступні дії (передбачається що aptana встановлена і призначений робочий каталог):
File-> Import
У вікні
Git-> Git Repository as New Project
Після цих дій на нашій клієнтській машині буде перебувати копія нашого серверного сховища.
Тепер можна робити коммітов і пуші для внесення змін на наш сайт.
Правою кнопкою натискаємо по проекту, вибираємо "Team" і після внесення змін робимо "Commit", а потім "Push".
10. Змінити тему оформлення в Aptana можна наступним чином:
Windows-> Preferences-> Aptana Studio-> Themes
11. Aptana: відформатувати код в документі можна комбінацією клавіш:
ctrl shift f