Git Flashcards
Что такое ГИТ?
GIT — это распределенная система контроля версий и система управления исходным кодом (SCM), предназначенная для быстрой и эффективной обработки небольших и крупных проектов.
Что такое репозиторий в GIT?
Репозиторий содержит каталог с именем .git, где git хранит все свои метаданные репозитория. Содержимое каталога .git является личным для git.
Как создать репозиторий в Git?
В Git, чтобы создать репозиторий, создайте каталог для проекта, если он не существует, а затем выполните команду «git init». При запуске этой команды в каталоге проекта будет создан каталог .git, каталог не обязательно должен быть пустым.
Как переименовать ветку?
Если мы находимся в любой ветка
git branch -m [old-name] [new-name]
Как настроить репозиторий для запуска инструментов проверки работоспособности кода непосредственно перед выполнением комитов?
Это делается с помощью хука pre-commit. Для этого нужно прописать код проверки в конфигурационном файле pre-commit (.git/hooks). Git будет запускать данную проверку перед каждым комитом. Один из популярных - hasky.
Из чего состоит комит?
Это информация об измененных файлах. Коммит состоит из автора коммита, измененных файлов, и времени.
Как найти список файлов, которые изменились в определенном комите?
Загружаем список комитов
git log
Открываем список изменения комита
git show [хеш комита]
HEAD в гит
HEAD - это символическое имя текущего выбранного коммита — это, по сути, тот коммит, над которым мы в данный момент работаем.
Отделение (detaching) HEAD означает лишь присвоение его не ветке, а конкретному коммиту.
git log
git show
в git log можно найти хешь коммита
Открываем список изменения комита
git show [хеш комита]
Относительные ссылки git
Способ перемещаться по коммитам.
Перемещение на один коммит назад это ^
Перемещение на несколько коммитов назад ~<num></num>
git checkout HEAD^ - перемещение на коммит выше
git checkout HEAD~3 - перемещение на 3 коммита выше
git branch -f main HEAD~3 - переместит ветку main на 3 коммита назад относительно HEAD
вместо head~3 можно указать ссылку на хешь коммита
Способы отмены изменений в git.
git reset и git revert
Есть два основных способа отмены изменений в Git: первый - это git reset, а второй - git revert
git reset перенесёт ветку назад, как будто некоторых коммитов вовсе и не было.
git reset HEAD^
git revert - после git revert появится новый коммит, который отменяет изменения внесенные в предыдущем коммите
git revert HEAD
git revert HEAD~2
git reset —hard пользуются для полного удаления всех изменений, сделанных после определенного коммита
git cherry-pick
Это простой способ копировать один или несколько коммитов на место, где сейчас находишься (HEAD)
git cherry-pick <Commit1> <Commit2> <...></Commit2></Commit1>
git merge
git rebase
git merge - слияние веток.Слияния в Git создают особый вид коммита, который имеет сразу двух родителей.
При ребейзе Git по сути перебазирует (копирует) коммит где мы находимся в новое место
интерактивный rebase (rebase -i)
При rebase -i открывается редактор vim в котором выбираешь каким образом копировать коммиты.
При rebase -i есть 3 варианта:
- Можно сменить положение коммита по порядку, переставив строчку с ним в редакторе
- Можно “выкинуть” коммит из ребейза.
- Можно соединить коммиты
git tag
Ветки просто изменить, они часто временны и постоянно меняют своё состояние.
Тег позволяет ссылаться постоянно на конкретный коммит. После создания они никогда не сменят своего положения
git tag tagName hesh