Система управления версиями Git довольно хороший, полезный инструмент, эволюционировавший от Subversion, CVS, и других старых систем управления версиями. Она особенно хорошо подходит для распределенной разработки, так как вы можете работать без подключения к центрального серверу.
Git прекрасно документирован, поэтому вы всегда можете найти ответы на возникающие у вас вопросы. Если у вас возник вопрос, начните поиск ответа с документации, прежде чем делать искать в сети — это быстрее, и, кроме того, вы получите более полные ответы.
Мы, в свою очередь, хотим подарить вам небольшую шпаргалку, которая отражает использование Git в типичном цикл разработки.

Создание репозитория
# создаем новый репозиторий
git init

# клонирует в текущю папку существующий репозиторий, достпный по url
git clone [url]

# например, клонируем локально весь удалённый репозиторий jquery
git clone https://github.com/jquery/jquery
Ветви и тэги
# Выводит список всех ветвей с комментарием посленего коммита в каждой ветке
git branch –av

# Переключение указателя HEAD на указанную ветку
git checkout [ветка]

# Создает новую ветку на основе текущего положения указателя HEAD
git branch [новая-ветка]

# Создаёт новую отслеживаемую ветку на основе ветки в удаленном репозитории
git checkout --track [удаленный_репозиторий/ветка]

# Удаляет локальную ветку
git branch -d [ветка]

# Помечает тегом текущий коммит
git tag [имя-тэга]
Локальные изменения
# Добавляет указанный локально измененный файл в следующий коммит
git add [имя_файла]

# Исключает указанный файл из следующего коммита
git rm [имя_файла]

# Добавляет в следующий коммит только изменившуюся часть указанного файла
# См. видео http://johnkary.net/blog/git-add-p-the-most-powerful-git-feature-youre-not-using-yet/
git add -p [имя_файла]

# Добавляет в следующий коммит все изменившиеся отслеживаемые локальные файлы
git commit –a
git commit -am "Комментарий к коммиту"

# Собственно, выполняет коммит - переносит изменения в локальные репозиторий
git commit
git commit -m "Комментарий к коммиту"

# Указанный файл будет удалён из следующего коммита, однако, содержимое файла останется не тронутым
git reset [имя_файла]
История коммитов
# Показывает все коммиты, начиная с последнего
git log 

# Показывает историю изменений только для указанного файла
git log -p [имя_файла]

# Показывает, автора изменений каждой строки в файле, время изменения и идентификатор коммита
git blame -c [имя_файла]
Работа с удалённым репозиторием
# Выводит список всех удалённых репозиториев
git remote -v

# Добавляет новый удалённый репозиторий, доступный по [url] с указанным локальным именем
git remote add [локальное_имя] [url]

# Загружает все изменения с удалённого реопзитория [remote] в локальный репозиторий, но, изменения не применяются к локальным файлам. Загруженные изменения остаются только в локальном репозитории
git fetch [remote]

# Загружает все изменения с удалённого репозитория [remote] в локальный репозиторий и применяет скачанные изменения к локальным файлам в указанной ветке
git pull [remote] [ветка]

# Загружает все изменения из локального репозитория в указанную ветвь удалённого репозитория [remote]
git push [remote] [ветка]

# Удаляет указанную ветку в удалённом репозитории [remote]
git branch -dr [remote/ветка]

# Публикует локальные тэги в удалённом репозитории
git push --tags
Merge и Rebase
# Объединяет указанную [ветку] в ту, на котороую в данный момент указывает HEAD 
git merge [веткf]

# Переносит ваш текущий HEAD на указанную [ветку]
git rebase [ветка]

# Прерывает перенос
git rebase –abort

# Продолжает перенос, прерванный для разрешения конфликтов слияния
git rebase –continue

# Использует указанное в настройках git приложение для разрешения конфликтов слияния
git mergetool

# Если вы самомстоятельно устранили возникшие конфликты слияния, вам необходимо использовать следующие команды чтобы пометить файлы как "исправленные"
git add <исправленный-файл>
git rm <исправленный-файл>
Отмена изменений
# Отменяет все изменения, внесенные в локальные файлы и возвращает из к состоянию, которое было после последнего коммита
git reset --hard HEAD

# Отменяет все изменения, внесенные в указанный локальный [файл]
git checkout HEAD [файл]

# Отменяет изменения, которые внеc указанный [коммит], создавая новый коммит, выполняющий изменения, обратные изменениям [коммит]а
git revert [коммит]

# Изменяет файлы в текущей ветке таким образом, чтобы были учтены только изменения, внесенные указанным [коммитом]. Все изменения, сделанные после указаннного [коммита] будут потеряны
git reset --hard [коммит]

# Изменяет файлы в текущей ветке таким образом, чтобы были учтены только изменения, внесенные предпоследним [коммитом]. Все изменения в файлах, не добавленных в последний коммит, сохраняются.
git reset [коммит]

# Изменяет файлы в текущей ветке таким образом, чтобы были учтены только изменения, внесенные предпоследним [коммитом]. Все изменения в файла, добавленных в последний коммит, сохраняются.
git reset --keep [commit]

Источник: www.codementor.io