Skip to content
Vadim Zhukov edited this page Apr 19, 2022 · 8 revisions

Первоначальная настройка

Понадобятся следующие программы:

  • git
  • cmake
  • make
  • c++ (системный компилятор C++)
    • может быть представлен CLang (clang++, рекомендуется), GCC (g++) или другим компилятором.
  • vi, vim, mg, emacs, nano, mcedit или любой другой текстовый редактор

Порядок установки зависит от конкретной операционной системы и поэтому здесь не рассматривается; CMake в данном Wiki посвящена отдельная страница.

Создайте и перейдите в папку, в которой будет размещён локальный репозиторий:

mkdir kmbo--21
cd kmbo--21

Произведите клонирование:

git clone https://github.com/LOGIN/kmbo--21 .

Свяжите полученный локальный репозиторий с преподавательским:

git remote add sensei https://github.com/grayed/kmbo--21

Укажите имя и email (рекомендуется использовать точно такие же, как на GitHub):

git config user.name "Sasha Green"
git config user.email "sasha.g@mail.ru"

Укажите политику для объединения коммитов rebase:

git config pull.rebase true

Подготовка к первой сборке

Подразумевается, что вы по-прежнему находитесь в основном каталоге локального репозитория.

Создайте папку, в которой будет производиться сборка (в данном случае будет использоваться подкаталог debug):

mkdir debug

Сконфигурируйте проект с помощью CMake:

(cd debug && cmake -DCMAKE_BUILD_TYPE=Debug ..)

CMake проанализирует текущее окружение и подготовит в каталоге debug файл Makefile, содержащий для программы make указания, как собирать программы в репозитории, см. ниже.

Рабочий процесс

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

git pull sensei master

Для сборки и запуска, скажем, программы animals, можно использовать примерно следующую команду:

(cd debug/animals && make && ./animals)

Если вы находитесь в подпапке исходных текстов animals, то относительный путь, разумеется, меняется:

(cd ../debug/animals && make && ./animals)

Чтобы отправить изменения в удалённый репозиторий, их сначала нужно зафиксировать:

git commit -a

Собственно отправка в удалённый репозиторий:

git push