Создание репозитория

  • git init - инициализирует папку как гит репозиторий
  • git add --all, git add . - отмечает файлы к коммиту
  • git commit -m "commit message" - создает коммит с отмеченными файлами, с сообщением
  • git remote add <name> <url> - указывает удаленный гит-репозиторий под именем (обычно origin)
  • git push -u origin master - отправляет в origin ветку master, -u указывает на то, что это сочетание должно стать значением по умолчанию (и далее можно делать git push без указания целей)

Работа с локальными изменениями

  • git status - показывает текущее состояние рабочей директории и индекса
  • git log - выводит историю коммитов
  • git log -p <file> - показывает историю коммитов для файла
  • git blame <file> - выводит построчно файл с показом коммита и автора изменений

Отмена изменений

  • git reset --hard или git reset --hard HEAD - удаляет локальные изменения, восстанавливая рабочую директорию к последнему коммиту (голове)
  • git checkout HEAD <file> - отменяет изменения в выбранном файле, восстанавливая его к хэду
  • git revert <HASH> - создает новый коммит, отменяющий изменения из указанного коммита
  • git reset --soft - сбрасывает историю до последнего локального коммита без изменения рабочей директории и индекса

Ветвление и Слияние

  • git checkout -b <branch_name> - создает новую ветку и переключается на нее
  • git checkout <branch_name> - переключается на ветку
  • git merge <branch_name> - сливает указанную ветку в текущую ветку

Прятание

  • git stash - спрятать все локальные изменения
  • git stash list - показать список спрятанных изменений
  • git stash apply - применить/вернуть последние спрятанные изменения
  • git stash pop - применить последние спрятанные изменения и удалить их из списка
  • git stash drop - удалить последние спрятанные изменения

Теги

  • git tag tagname - создать новый тег tagname
  • git tag - вывести список тегов
  • git push origin tagname - отправить в удаленный origin указанный тег
  • git push --tags - отправить все теги
  • git tag -D tagname - удалить тег локально
  • git push --delete origin tagname - удалить в удаленном origin указанный тег

Сравнение изменений

  • git diff - показать изменения между текущей рабочей папкой и индексом
  • git diff HEAD - показать изменения между рабочей папкой и последним коммитом

Управление ветками

  • git branch -d <branch> - удалить локальную ветку, если она была слита в другую
  • git branch -D <branch> - удалить локальную ветку, невзирая слита ли была она или нет

Управление удаленными репозиториями

  • git remote -v - показать список удаленных репозиториев
  • git remote add <name> <url> - добавить удаленный репозиторий с именем <name> и адресом <url>
  • git remote set-url <name> <url> - изменить <url> существующего удаленного репозитория с именем <name>
  • git remote remove <name> - удалить удаленный репозиторий с именем <name>
  • git fetch - получить изменения из удаленного репозитория без их слияния с локальной веткой