Статические сайты и Git
Предыдущую заметку я закончил словами о том, что статические сайты можно публиковать на Git-сервисах.
Если Вы знакомы с системами управления версиями, то преимущества данного подхода Вам должны быть понятны. Если же Вы не знакомы, то вот они:
- на сервере хранятся все версии файлов Вашего сайта;
- можно вести совместную работу над сайтом.
Отдельное преимущество Git-сервисов заключается также в том, что Ваш сайт обновляется автоматически с обновлением соответствующего хранилища файлов сайта (репозитория).
В этой заметке под Git-сервисами я буду подразумевать следующие два:
Общие черты этих двух сервисов:
- бесплатность;
- удобный веб-интерфейс;
- наличие утилиты с графическим интерфесом для Windows;
- наличие так называемых Pages для статических сайтов пользователей сервиса:
Основное отличие Bitbucket от GitHub в том, что он позволяет бесплатно создавать приватные (закрытые от посторонних) репозитории.
Подготовка
Если Вы ещё не зарегистрированны на Git-сервисе, то первым делом сделайте
это. После чего, используя всё тот же веб-интерфейс, создайте в нём
репозиторий для своего сайта. Имя репозитория должно выглядеть так:
LOGIN.github.io
или LOGIN.bitbucket.org
, соответственно, где LOGIN Ваш
логин на данном Git-сервисе. Обновление файлов в этом репозитории будет
приводить к автоматическому изменению Вашего сайта. (Ещё одно отличие
Bitbucket Pages от GitHub Pages в том, что сайт на первом обновляется
мгновенно, а вот на втором как-правило нужно подождать какое-то время.)
Теперь для добавления в репозиторий файлов сайта Вам потребуется утилита для работы с Git-репозиториями. Есть несколько вариантов:
- "фирменные" утилиты Git-сервисов с графическим интерфесом (кроме Windows есть поддержка и других операционных систем);
- универсальная утилита с графическим интерфейсом для Windows TortoiseGit;
- стандартная утилита командной строки с сайта Git;
- различные дополнения для сред разработки и текстовых редакторов.
Лично мне "фирменные" утилиты не понравились. Под Windows наиболее удобным
вариантом оказалась TortoiseGit. Эта утилита интегрируется с Проводником,
распознаёт папки с локальными копиями репозиториев и добавляет для них в
контестное меню операции Git. Наконец, универсальным вариантом является
стандартная утилита командной строки git
. Её мы и будет здесь использовать.
Локальная копия
Теперь, когда у Вас есть Git-репозиторий и сайт, который нужно на него "залить", запустим оболочку (shell) и перейдём в каталог с файлами сайта.
Если Вы раннее не работали с Git, то прежде чем выполнять дальнейшие
действия, Вам нужно немного настроить git
:
git config --global user.name "Ваше имя"
git config --global user.email "Ваш email"
Теперь проинициализируем текущий каталог в качестве локальной копии репозитория:
git init
git remote add origin https://LOGIN@SERVICE/LOGIN/REPOSITORY.git
В последней команде под SERVICE
понимается адрес Git-сервиса, а под
REPOSITORY
- название репозитория.
Добавление и изменение файлов
Далее, добавим файлы сайта в репозиторий:
git add .
git commit -m "First commit"
git push -u origin --all
Всё, Ваши файлы "залиты" в репозиторий, и Вы можете наслаждаться Вашим сайтом
по ссылке вида LOGIN.github.io
или LOGIN.bitbucket.org
в зависимости об
выбранного сервиса.
В дальнейшем, любые действия по добавлению и изменению файлов сайта должны сопровождаться вышеприведёнными командами.
Удаление файла
Если Вам нужно удалить файл из репозитория, запустите команду:
git rm FILE
Перемещение файла
Для перемещения файла в пределах репозитория, переместите файл в локальной копии репозитория, а затем запустите пару команд:
git add FILE
git rm FILE
Загрузка репозитория
Копирование (клонирование) удалённого репозитория делается командой:
git clone https://LOGIN@bitbucket.org/LOGIN/REPOSITORY.git
Загрузка обновлений из репозитория
Если Вы работаете над сайтом на разных компьютерах, или над сайтом работает команда, то Вам потребуется перед работой с локальной копией репозитория получать его обновления. Для этого достаточно вызывать в каталоге локальной копии команду:
git pull
Пока всё!
Что ещё почитать
- Как начать работать с GitHub: быстрый старт
- Ежедневная работа с Git
- Командная работа в Git
- Pull request'ы на GitHub или Как мне внести изменения в чужой проект
Ссылки
(c) Симоненко Евгений, 2013