Инструкция по Git - Victor-Y-Fadeev/qreal GitHub Wiki

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

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

$ git config --global user.name 'Your name'
$ git config --global user.email [email protected]

Загрузка репозитория:

$ git clone https://github.com/user-name/repository

Загрузка всех подмодулей:

$ git submodule update --init --recursive

Сохранение данных аккаунта (linux):

$ git config credential.helper store

Удаление данных аккаунта (linux):

$ git config --unset credential.helper

Коммиты и работа с ветками

Фиксирование изменений в репозитории - коммит.

Просмотр текущих изменений в репозитории:

$ git status

Добавление файлов (всех измененных), создание коммита и отправки изменений на сервер:

$ git add .
$ git commit -m 'Your comments (where you can use "")'
$ git push

Список коммитов:

$ git log

Создание новой ветки (от той в которой вы находитесь!):

$ git checkout -b your-new-branch

Первая отправка новой ветки на сервер:

$ git push --set-upstream origin your-new-branch

Получение удаленной ветки:

$ git checkout --track origin/server-branch

Переключение на другую ветку:

$ git checkout other-branch

P.S.

По нашему стайлгайду название ветки - iotik-v1-0-your-work.

Откат изменений и удаление веток

Внимание, использовать только в крайнем случай!

Откат индексации и изменений (всех файлов) до последнего коммита:

$ git reset HEAD .
$ git checkout .

Изменение файлов и комментария последнего коммита с перезаписью на сервере:

$ git add .
$ git commit --amend -m 'New comments'
$ git push --force

Удаление локальной ветки:

$ git branch -d remove-branch

Удаление ветки на сервере:

$ git push origin :remove-server-branch

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

$ git push origin --delete remove-server-branch

P.S.

На сервере ничего не стирать.

Слияние веток

Получение изменений из другой ветки (в текущую):

$ git merge branch-whats-you-want

Запрос на слияние (в основную ветку):

  • Создать Pull request
  • Выбрать репозиторий в котором хранится ветка - base fork
  • Указать ветку куда следует добавить изменения - base
  • Указать ветку с требуемыми изменениями - compare
  • Добавить название слияния и комментарий

P.S.

Наша основная ветка разработки - iotik-v1-0.