В данной статье приведена шпаргалка по часто используемым и полезным командам 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> – отменить изменения в указанном файле