В данной статье приведена шпаргалка по часто используемым и полезным командам Git. Список будет пополняться

Синхронизация с репозиторием

git clone <url> – скачать репозиторий по указанному адресу и поместить его в новую папку, совпадающую с именем репозитория

git clone <url> <dir> – скачать репозиторий по указанному адресу в указанную папку

git remote update – обновление данных по всем локальным бранчам без мержа

git fetch – обновление данных по текущему бранчу из репозитория без мержа

git pull – обновление данных по текущему бранчу и мерж данных из репозитория

git push – запушить изменения в текущем бранче в репозиторий

git push origin <branch>
git push origin <tag> – запушить указанный бранч/тег в репозиторий

git push origin <branch1> <branch2> <tag1> <tag2> – запушить несколько бранчей/тегов в репозитой

git push origin <branch> -f – принудительно запушить бранч в репозиторий, перезаписав историю коммитов, если она отличается. Для наиболее часто используемых бранчей (develop, master) не рекомендуется использовать данную опцию

git checkout <branch> – переключиться на указанный локальный бранч

git checkout -b <branch> – создать новый бранч на основе текущего бранча (коммита)

git branch -a – отобразить все бранчи, локальные и в репозитории

git branch -D – удалить локальный бранч

git push origin —delete <branch> – удалить бранч в репозитории

git branch -m <new branch name> – переименовать текущий локальный бранч

git reset —hard <commit> – откатиться к указанному коммиту. Все предыдущие изменения и изменения в рабочей директории будут утеряны

Слияние

git merge <branch>
git merge <origin/branch> – смержить изменения из указанного бранча в текущий бранч

git cherry-pick <commit> – скопировать указанный коммит в текущий бранч. При этом создастся новый коммит в текущем бранче

История коммитов

git log – просмотр истории коммитов в текущем репозитории

git log —graph – просмотр в «графическом виде», где будут нарисованы ветвления и слияния бранчей

git log —oneline– просмотр в компактном виде: один коммит – одна строка

git log <branch>
git log <origin/branch> – просмотр истории коммитов в указанном бранче (в локальном или в бранче репозитория)

git show <commit> – просмотр диффа указанного коммита

git show <commit>..<commit> – просмотр диффа нескольких коммитов

git show HEAD – просмотр диффа последнего коммита в бранче

git show HEAD~1 – просмотр диффа предпоследнего коммита в бранче

git branch —contains <commit> -a – поиск бранчей, включающих указанный коммит. В поиске участвуют бранчи в репозитории

git branch —contains <commit> – поиск бранчей, включающих указанный коммит. В поиске не участвуют бранчи в репозитории

Диффы и патчи

git show HEAD~1..HEAD > /tmp/test.patch – сохранение диффа последнего коммита в файл

git apply </path/to/patch.file> – применить к текущей рабочей директории указанный патч

Теги

git tag <tag> – создать тег для текущего коммита

git tag -d <tag> – удалить локальный тег

Рабочая директория

git add . – добавить все изменения в текущей директории (и поддиректориях) в staging area, подготовив их тем самым к коммиту

git add </path/to/file> – добавить изменения в указанном файле в staging area, подготовив их тем самым к коммиту

git commit -m «message» – сделать коммит с указанным сообщением

git status – показать информацию текущего бранча

git stash – застешить (сохранить) незакоммиченные изменения в специальном хранилище. Пригодится, если нужно временно очистить рабочую директорию от внесённых изменений.
Примечание: в хранилище не будут перемещены новые файлы и игнорируемые файлы

git stash -u – переместить в хранилище внесённые изменения, а также новые файлы

git stash -a – переместить в хранилище все внесённые изменения, включая новые файлы, а также игнорируемые файлы

git stash pop – восстановить сохранённые ранее изменения из специального хранилища

git stash list – отобразить список отложенных сохранений в хранилище

git checkout . – отменить все изменения в рабочей директории (новые файлы не будут удалены)

git clean -fd – отменить все изменения в рабочей директории, включая новые файлы

git checkout — </path/to/file> – отменить изменения в указанном файле

Разные команды

Шпаргалка по Git