Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

Шпаргалка по консольным командам Git

Консольные команды

Создать новый репозиторий

  • git init # создать новый проект в текущей папке
  • git init folder-name # создать новый проект в указанной папке

Клонирование репозитория

  • git clone git@github.com:nicothin/web-design.git # клонировать удаленный репозиторий в одноименную папку
  • git clone git@github.com:nicothin/web-design.git foldername # клонировать удаленный репозиторий в папку «foldername»
  • git clone git@github.com:nicothin/web-design.git . # клонировать репозиторий в текущую папку

Добавление файлов к отслеживанию, индексация отслеживаемых

  • git add text.txt # добавить к отслеживанию этот существующий файл
  • git add . # добавить к отслеживанию все новые файлы из текущей папки и её подпапок, индексировать отслеживаемые файлы
  • git add -i # запуск оболочки интерактивного индексирования для добавления в индекс только выбранных файлов
  • git add -p # поочередный просмотр файлов с показом изменений и задаваемым вопросом об отслеживании/индексировании (удобно для добавления в коммит только каких-то конкретных файлов)

Убирание файла, папки из отслеживания

  • git rm --cached readme.txt # удалить файл из отслеживаемых (файл останется на месте)
  • git rm --cached -r folder # удалить папку из отслеживаемых (папка останется на месте)

Отмена индексации

  • git reset HEAD # убрать из индекса все индексированные файлы
  • git reset HEAD text.txt # убрать из индекса указанный файл

Просмотр изменений

  • git diff # посмотреть непроиндексированные изменения (если есть, иначе ничего не выведет)
  • git diff --staged # посмотреть проиндексированные изменения (если есть, иначе ничего не выведет)

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

  • git checkout -- text.txt # ОПАСНО: отменить все изменения, внесенные в отслеживаемый файл со времени предыдущего коммита (файл не добавлен в индекс)
  • git checkout -- . # ОПАСНО: отменить изменения во всех непроиндексированных отслеживаемых файлах
  • git checkout text.txt # ОПАСНО: отменить изменения в непроиндексированном файле Коммиты
  • git commit -m "Name of commit" # закоммитить отслеживаемые индексированные файлы (указано название коммита)
  • git commit -a -m "Name of commit" # закоммитить отслеживаемые индексированные файлы (указано название коммита, не требует git add, не добавит в коммит неотслеживаемые файлы)
  • git commit # закоммитить отслеживаемые индексированные файлы (откроется редактор для введения названия коммита)
  • git commit --amend # изменить последний коммит (Insert — режим ввода, : — командный режим; в командном режиме: :wq — сохранить и выйти)
  • git commit --amend -m "Новое название" # переименовать последний коммит (только если ещё не был отправлен в удалённый репозиторий) Отмена коммитов
  • git revert HEAD --no-edit # создать новый коммит, отменяющий изменения последнего коммита без запуска редактора сообщения
  • git revert b9533bb --no-edit # создать новый коммит, отменяющий изменения указанного (b9533bb) коммита без запуска редактора сообщения (указаны первые 7 символов хеша коммита)
  • git reset --hard 75e2d51 # вернуть репозиторий в состояние коммита с указанным хешем ОПАСНО! пропадет вся работа, сделанная после этого коммита

Временно переключиться на другой коммит

  • git checkout b9533bb # временно переключиться на коммит с указанным хешем
  • git checkout master # вернуться к последнему коммиту в указанной ветке

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

  • git checkout -b new-branch 5589877 # создать ветку new-branch, начинающуюся с коммита 5589877

Удаление файла (просто удалить отслеживаемый файл из папки недостаточно, нужно сделать его неотслеживаемым и отправить коммит)

  • git rm text.txt # удалить из отслеживаемых неиндексированный файл (файл будет удален из папки)
  • git rm -f text.txt # удалить из отслеживаемых индексированный файл (файл будет удален из папки)
  • git rm -r log/ # удалить из отслеживаемых всё содержимое папки log/ (папка будет удалена)
  • git rm ind* # удалить из отслеживаемых все файлы с именем, начинающимся на «ind» в текущей папке (файлы будут удалены из папки)
  • git rm --cached readme.txt # удалить из отслеживаемых индексированный файл (файл останется на месте)

Перемещение/переименование файлов (Git не отслеживает перемещения/переименование, но пытается его угадать)

  • git mv text.txt test_new.txt # переименовать файл «text.txt» в «test_new.txt»
  • git mv readme_new.md folder/ # переместить файл readme_new.md в папку folder/ (должна существовать)

История изменений

  • git log -p index.html # показать историю изменений файла index.html (выход из длинного лога: Q)
  • git log -p -5 index.html # показать историю изменений файла index.html (последние 5 коммитов, выход из длинного лога: Q)
  • git log -2 # показать последние 2 коммита
  • git log -2 --stat # показать последние 2 коммита и статистику внесенных ими изменений
  • git log -p -22 # показать последние 22 коммита и внесенную ими разницу на уровне строк (выход из длинного лога: Q)
  • git log --pretty=format:"%h - %an, %ar : %s" -4 # показать последние 4 коммита * git log --graph -10 # показать последние 10 коммитов с ASCII-представлением ветвления
  • git log --since=2.weeks # показать коммиты за последние 2 недели
  • git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short # мой формат вывода, висящий на алиасе оболочки
  • git log master..branch_99 # показать коммиты из ветки branch_99, которые не влиты в master
  • git log branch_99..master # показать коммиты из ветки master, которые не влиты в branch_99
  • git show 60d6582 # показать изменения из коммита с указанным хешем
  • git show HEAD^ # показать данные о предыдущем коммите

Ветки

  • git branch # показать список веток
  • git branch -v # показать список веток и последний коммит в каждой
  • git checkout new_branch # перейти в указанную ветку
  • git checkout -b new_branch # создать новую ветку с указанным именем и перейти в неё
  • git merge hotfix # влить в ветку, в которой находимся, данные из ветки hotfix
  • git branch -d hotfix # удалить ветку hotfix (если её изменения уже влиты в главную ветку)
  • git branch --merged # показать ветки, уже слитые с активной (их можно удалять)
  • git branch --no-merged # показать ветки, не слитые с активной
  • git branch -a # показать все имеющиеся ветки (в т.ч. на удаленных репозиториях)
  • git branch -m old_branch_name new_branch_name # переименовать локально ветку old_branch_name в new_branch_name
  • git branch -m new_branch_name # переименовать локально ТЕКУЩУЮ ветку в new_branch_name
  • git push origin :old_branch_name new_branch_name # применить переименование в удаленном репозитории
  • git branch --unset-upstream # завершить процесс переименования

Удалённые репозитории

  • git remote -v # показать список удалённых репозиториев, связанных с этим
  • git remote remove origin # убрать привязку удалённого репозитория с сокр. именем origin
  • git remote add origin git@github.com:nicothin/test.git # добавить удалённый репозиторий (с сокр. именем origin) с указанным URL
  • git remote rm origin # удалить привязку удалённого репозитория
  • git remote show origin # получить данные об удалённом репозитории с сокращенным именем origin
  • git fetch origin # скачать все ветки с удаленного репозитория (с сокр. именем origin), но не сливать со своими ветками
  • git fetch origin master # то же, но скачивается только указанная ветка
  • git checkout origin/github_branch # посмотреть ветку, скачанную с удалённого репозитория (локальной редактируемой копии не создаётся! если нужно редактировать, придётся влить)
  • git checkout --track origin/github_branch # создать локальную ветку github_branch (данные взять из удалённого репозитория с сокр. именем origin, ветка github_branch) и переключиться на неё
  • git push origin master # отправить в удалённый репозиторий (с сокр. именем origin) данные своей ветки master
  • git pull origin # влить изменения с удалённого репозитория (все ветки)
  • git pull origin master # влить изменения с удалённого репозитория (только указанная ветка)

Разное

  • git clean -f -d # удалить из репозитория все неотслеживаемые папки и файлы (папки и файлы, добавленные в .gitignore останутся на месте)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors