[Kronos2-developer] Памятка по Git
Status: Pre-Alpha
Brought to you by:
moskvin
From: Nikolay M. <nik...@gm...> - 2011-03-18 15:18:16
|
Всем привет. Как Вы знаете для контроля версии для Кронос проекта, мы используем Git. Небольшая справка о Git: 1. Клонирование Для того, чтобы склонироваться с правами на запись необходимо пройти по ссылке https://sourceforge.net/projects/kronos2/develop и скопировать вторую строчку, у меня она выглядит так: git clone ssh://mo...@kr.../gitroot/kronos2/kronos2 и выполнить её у себя в терминале. 2. Синхронизация кода Для того, чтобы забрать последнюю стабильную версию с сервера и синхронизировать со своей необходимо выполнить команду: git pull origin master 3. Заливка нового кода Для заливки на сервер ваших изменений необходимо сделать следующие команды: Чтобы убедиться в том, что вы добавили все файлы, которые вы изменяли необходимо сделать: git status После этого если тот файл (допустим он называется new.txt), который вы хотите залить помечен как untracked, то делаем: git add new.txt После этого необходимо зафиксировать ваш код командой: git commit -a -m="Изменения касающиеся Энтой! задачи" И после того как вы убедились в том, что вы ничего не забыли добавить можно код смело отправлять на сервер командой: git push origin HEAD:testing Переключение между ветками В git самая лучшая поддержка ветвлений (бранчивания). Рассмотрим пример: Предположим, что у меня перестал работать DriverX, и я решил вернуться в предыдущую версию, так как я уверен, что в предыдущей версии все работало, для этого необходимо в начале найти как называется предыдущая фиксация: git log Вывелось следующее: commit c3d952f96be71db61e65bf02c13b2e75417b961e Author: moskvin <mo...@fr...> Date: Fri Mar 18 19:42:24 2011 +0600 =Changes for DriverZ commit c0cc951f0f76fe37c04cb76bbdda5ae1ec7f8422 Author: moskvin <mo...@fr...> Date: Thu Mar 10 01:20:09 2011 +0600 =Changes for DriverX. Возвращаемся, с помощью команды: git checkout c0cc951f0f76fe37c04cb76bbdda5ae1ec7f8422 -b old Если набрать git branch, то можно заметить, что по мимо ветки master появилась ветка old. После того как выяснилось в чем была проблема возвращаемся в master: git checkout master Слияние веток Чтобы слить текущую ветку (master) с какой-нибудь другой (testing) необходимо сделать: git merge testing Соглашение Давайте примем за соглашение следующие вещи: 1) В git заливаемся в ветку testing (как это делать можно увидеть повыше) 2) Ветка master - это стабильная ветка, в которую будем заливать готовые решения той или иной задачи. 3) В проект не в коем случае не заливать бинарные (объектные) файлы. Следите, чтобы при добавлении (git add) не добавилась директория со сборкой. Исключением являются жесткие для Кронос-машины, которые находятся в директории src/disks. 4) Стараемся как можно чаще делать фиксацию кода git commit (раз в день). Немного реже git pull/git push (хотя бы раз в неделю, либо после email- нотификации) -- Best regards, Nikolay Moskvin Certified Java SE 6 Programmer C/C++ Linux developer |