Git — система управления версиями с распределенной архитектурой. В отличие от некогда популярных систем вроде CVS и Subversion (SVN), где полная история версий проекта доступна лишь в одном месте, в Git каждая рабочая копия кода сама по себе является репозиторием. Это позволяет всем разработчикам хранить историю изменений в полном объеме. Удобство и гибкость сделали Git стандартом для большинства современных IT-компаний.

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

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

показать настройки

git config --global -l

указать где хранить пароли (для windows)

git config --global credential.helper wincred

указать ваше имя для будущих коммитов

git config --global user.name "Username"

указать ваш email для будущих коммитов

git config --global user.email "me@gmail.com"

Создание репозиториев:

создать локальный репозиторий в текущей папке / инициировать репозиторий в текущем каталоге

git init

скачать удаленный репозиторий

git clone [url]

Работа с репозиторием:

показать состояние

git status -s

добавить все изменения в индекс

git add .

зафиксировать изменения с комментарием

git commit -m "comment"

Работа с историей:

переписать коммиты текущей ветки после коммитов в указанной ветке

git rebase [name]
git checkout -- .

откатить индексацию изменений, оставив их в рабочей директории (git add . наоборот)

git reset -- .

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

git reset HEAD

удалить из текущей ветки ВСЕ изменения после указанного коммита, затерев рабочую директорию

git reset --hard HEAD

удалить из рабочей директории untracked файлы

git clean -fd -- .

Работа с удаленными репозиториями:

показать привязанные удаленные репозитории

git remote -v

добавить указанный репозиторий под именем origin

git remote add origin [url]

скачать origin репозиторий, не применяя к локальным веткам

git fetch origin --prune

скачать origin репозиторий, применяя изменения к локальным веткам

git pull origin [name]

запушить ветку или тег

git push origin [name]

отвязать текущую локальную ветку от ветки в origin репозитории

git branch --unset-upstream

Работа с ветками:

показать на что указывает HEAD

cat .git/HEAD

показать список веток

git branch -a

создать новую ветку на основе текущей

git branch [new-name]

создать новую ветку на основе текущей и переключиться на нее

git branch -b [new-name]

удалить локальную ветку

git branch -d [name]

переключиться на ветку (фактически направить HEAD на указанную ветку)

git checkout [name]

смержить в текущую ветку коммиты из указанной ветки

git merge [name]

Теги:

показать список локальных тегов

git tag

пометить тегом текущий HEAD

git tag [name]

пометить тегом текущий HEAD вместе с комментарием

git tag [name] -m "comment"

удалить локальный тег

git tag -d [name]

Логи:

показать всю историю коммитов

git log --oneline

показать последние 10 коммитов

git log --oneline -10

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

git log --oneline --follow some-file

показать изменения в файле

git diff some-file

показать какой пользователь, когда и что изменял в файле

git blame some-file

Бонус:

создать псевдоним для часто используемых комманд

git config --global alias.<alias_name> <git_command>