This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
khosb/includes/kohana/modules/userguide/guide/ru-ru/tutorials.git.md
2011-05-03 09:49:01 +10:00

7.6 KiB
Raw Blame History

Работа с Git

Kohana применяет git для контроля версий и github для совместной разработки. Данная статья покажет Вам как использовать git и github для создания простейшего приложения.

Установка и настройка Git на Вашей машине

Установка Git

  • для OSX: Git-OSX
  • для Windows: Msygit
  • Или загрузите git с официального сайта и установите его самостоятельно (подробности установки смотрите на сайт Git)

Основные глобальные настройки

git config --global user.name "Your Name"
git config --global user.email "youremail@website.com"

Дополнительные, но предпочтимые настройки

Для лучшей визуализации команд и репозиторий в командной строке, используйте следующее:

git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto

Настройка автозавершения

[!!] Следующие строки применимы только для OSX машин

Эти строки сделают всю грязную работу за вас и после этого Вы сможете спокойно работать с git-окружением, используя автозавершение команд:

cd /tmp
git clone git://git.kernel.org/pub/scm/git/git.git
cd git
git checkout v`git --version | awk '{print $3}'`
cp contrib/completion/git-completion.bash ~/.git-completion.bash
cd ~
rm -rf /tmp/git
echo -e "source ~/.git-completion.bash" >> .profile

Всегда используйте LF в окончаниях строк

Это соглашение, которое было принято Kohana сообществом. Выставьте эту настройку во имя Вашего Господа, особенно если хотите участвовать в kohana коммьюнити!

git config --global core.autocrlf input
git config --global core.savecrlf true

[!!] Более подробную информацию об окончаниях строк читайте на GitHub'е

Информация для размышления

Основная структура

[!!] Предполагается, что Ваш web-сервер уже настроен, и Вы будете использовать адрес http://localhost/gitorial/ для нового приложения.

Откройте консоль, перейдите в пустую директорию gitorial и выполните команду git init. Она создаст заготовку под новый git-репозиторий.

Далее, мы создадим подпроект (submodule) для директории system. Откройте http://github.com/kohana/core и скопируйте значение Clone URL:

Github Clone URL

Используйте скопированный URL для создания подпроекта system:

git submodule add git://github.com/kohana/core.git system

[!!] Будет создана связь с текущей разрабатываемой версией следующего стабильного релиза. Эта версия должна практически всегда быть безопасна для использования, иметь тот же API, что в текущем стабильном релизе с исправленными ошибками.

Теперь добавьте остальные необходимые подпроекты. Например, если нужен модуль Database:

git submodule add git://github.com/kohana/database.git modules/database

После добавления модули должны быть проиниализированы:

git submodule init

Теперь мы должны зафиксировать текущее состояние:

git commit -m 'Added initial submodules'

Следующий шаг - создание структуры папок для приложения. Вот необходимый минимум:

mkdir -p application/classes/{controller,model}
mkdir -p application/{config,views}
mkdir -m 0777 -p application/{cache,logs}

Если запустить команду find application, Вы должны увидеть такой список:

application
application/cache
application/config
application/classes
application/classes/controller
application/classes/model
application/logs
application/views

Мы не хотим, чтобы git обрабатывал логи или файлы кэша, поэтому добавим файл .gitignore в соответствуюшие директории logs и cache. Теперь все нескрытые (non-hidden) файлы будут проигнорированы git'ом:

echo '[^.]*' > application/{logs,cache}/.gitignore

[!!] Git пропускает пустые папки, так что добавляя файл .gitignore, мы дополнительно заставляем git учитывать данную директорию, но не файлы внутри нее.

Теперь загружаем файлы index.php и bootstrap.php:

wget http://github.com/kohana/kohana/raw/master/index.php
wget http://github.com/kohana/kohana/raw/master/application/bootstrap.php -O application/bootstrap.php

Фиксируем эти изменения:

git add application
git commit -m 'Added initial directory structure'

Это все необходимые изменения. Теперь у Вас имеется приложение, использующее Git для контроля версий.

Обновление подмодулей

Скорее всего, на определенном этапе Вы захотите обновить свои подпроекты. Чтобы обновить все модули до последних версий HEAD, введите:

git submodule foreach 'git checkout master && git pull origin master'

Для синхронизации подпроекта system выполните:

cd system
git checkout master
git pull
cd ..
git add system
git commit -m 'Updated system directory'

Обновление отдельного модуля до определенной ревизии:

cd modules/database
git fetch
git checkout fbfdea919028b951c23c3d99d2bc1f5bbeda0c0b
cd ../..
git add database
git commit -m 'Updated database module'

Заметьте, что можно так же загрузить коммит по официальной метке релиза. Например:

git checkout 3.0.7

Для того, чтобы увидеть все метки, просто запустите git tag без дополнительных аргументов.

Вот и всё!