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

149 lines
7.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Работа с Git
Kohana применяет [git](http://git-scm.com/) для контроля версий и [github](http://github.com/kohana) для совместной разработки. Данная статья покажет Вам как использовать git и github для создания простейшего приложения.
## Установка и настройка Git на Вашей машине
### Установка Git
- для OSX: [Git-OSX](http://code.google.com/p/git-osx-installer/)
- для Windows: [Msygit](http://code.google.com/p/msysgit/)
- Или загрузите git с [официального сайта](http://git-scm.com/) и установите его самостоятельно (подробности установки смотрите на сайт 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'е](http://help.github.com/dealing-with-lineendings/)
### Информация для размышления
- [Git скринкасты](http://www.gitcasts.com/)
- [Git справочник](http://gitref.org/)
- [Pro Git book](http://progit.org/book/)
## Основная структура
[!!] Предполагается, что Ваш web-сервер уже настроен, и Вы будете использовать адрес <http://localhost/gitorial/> для нового приложения.
Откройте консоль, перейдите в пустую директорию `gitorial` и выполните команду `git init`. Она создаст заготовку под новый git-репозиторий.
Далее, мы создадим подпроект ([submodule](http://www.kernel.org/pub/software/scm/git/docs/git-submodule.html)) для директории `system`. Откройте <http://github.com/kohana/core> и скопируйте значение Clone URL:
![Github Clone URL](http://img.skitch.com/20091019-rud5mmqbf776jwua6hx9nm1n.png)
Используйте скопированный URL для создания подпроекта `system`:
git submodule add git://github.com/kohana/core.git system
[!!] Будет создана связь с текущей разрабатываемой версией следующего стабильного релиза. Эта версия должна практически всегда быть безопасна для использования, иметь тот же API, что в текущем стабильном релизе с исправленными ошибками.
Теперь добавьте остальные необходимые подпроекты. Например, если нужен модуль [Database](http://github.com/kohana/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` без дополнительных аргументов.
Вот и всё!