Про Git

Инициализация git-репозитария:

git init

Создать файл .gitignore для списка файлов, которые не требуется отслеживать. Пример файла .gitignore:

*.o 
*.so 
*.swp 
*.htm 
*.bin 
*.dat 
*.elf 
*.txt 
*.a 
build/obj/

Добавить все существующие файлы под версионный контроль:

git add .

Создать начальный коммит:

git commit

В первой строке текстового редактора нужно ввести название коммита, через строку более подробное описание коммита:

Начальный коммит 

Это первый коммит, содержащий исходные файлы проекта 
# Please enter the commit message for your changes. Lines starting 
# with '#' will be ignored, and an empty message aborts the commit. 
# On branch master 
# 
# Initial commit 
# 
# Changes to be committed: 
#   (use "git rm --cached ..." to unstage) 
# 

Для выхода нажать «F2» и потом «Y» и на запрос:

.git/COMMIT_EDITMSG

Нажать «Enter»

Перезаписать текущий коммит:

git commit --amend

Последующие коммиты необходимо делать с ключем «-a» для автоматической индексации изменений в файлах:

git commit -a

Просмотр текущего состояния git-репозитария:

git status

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

git status
# On branch master 
nothing to commit (working directory clean) 

Для просмотра истории коммитов можно использовать команду:

git log --oneline 
8f5e4c4 Добавлен функционал при отображении графиков
9eac233 Исправлена ошибка с буфером
ec4bba1 Начальный коммит 

Также для просмотра истории можно пользоваться графической версией gitg

Для перехода к определенному коммиту:

git checkout 9eac233

Создание новой ветки:

1) git branch debugBranch

После выполнения команды «git branch debugBranch» будет создана новая ветка, но для того, чтобы начать работать в ней, нужно выполнить переход к этой ветке с помощью команды:

2) git checkout debugBranch
Switched to branch 'debugBranch'

Для просмотра списка веток используется команда:

git branch
* debugBranch
  master

Для просмотра разницы между текущим репозитарием и любым коммитом:

git diff ec4bba1

Иногда возникает ситуация что новый коммит не принадлежит не какой из веток.
Это можно увидеть с помощью команды:

git branch
* (no branch)
  master
  testOptimalWay

Также об этом говорит следующее сообщение:

Warning: you are leaving 1 commit behind, not connected to
any of your branches

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

git merge HEAD@{1}