Топ вопросов, которые задают на собеседовании про Git
Что такое Git?
Git - программное обеспечение, призванное помочь в версионировании кода и координации командной разработки. Является основой реализации распределенной системы контроля версий "GitHub".
Что такое GitHub?
GitHub - это платформа для размещения репозиториев с исходным кодом, предоставляющая возможность взаимодействия с ними посредством Git.
Что такое git-репозиторий?
git-репозиторий - это проинициализированная с помощью git директория, хранящая файлы исходного кода проекта. Репозиторий может быть либо локальным, либо удаленным.
Как проинициализировать git-репозиторий?
Для инициализации репозитория необходимо установить git, перейти в целевую директорию проекта и выполнить в ней консольную команду git init
.
Как скачать удаленный репозиторий?
$ git clone https://github.com/schacon/ticgit'
Cloning into 'ticgit'...
remote: Reusing existing pack: 1857, done.
remote: Total 1857 (delta 0), reused 0 (delta 0)
Receiving objects: 100%, 374.35 KiB | 268.00 KiB/s, done.
Resolving deltas: 100% (772/772), done.
Checking connectivity... done.
Это правильнее называть не скачиванием, а клонированием. Клонирование осуществляется командой git clone <repository_url>
.
Как вывести список подключенных удаленных репозиториев?
$ git remote -v
origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push)
Эту функцию выполняет команда git remote -v
.
Как к локальному репозиторию подключить удалённый?
$ git remote add origin https://github.com/paulboone/ticgit
$ git remote -v
origin https://github.com/paulboone/ticgit (fetch)
origin https://github.com/paulboone/ticgit (push)
Для того, чтобы к локальному репозиторию подключить удалённый репозиторий, с которым будет осуществляться последующее взаимодействие и синхронизация, необходимо выполнить команду git remote add <repository_local_name> <repository_url>
Как получить изменения из удалённого репозитория?
$ git fetch origin master
Правильным ответом будет git fetch
.
В работе мы используем git pull
, но git pull
не только скачивает изменения из удалённого репозитория, но и применяет их к локальному репозиторию. Грубо говоря, можно сказать, что git pull
= git fetch
+ git merge
.
Как проиндексировать изменённый файл?
$ git add .
$ git add CONTRIBUTING.md
Команда git add
вносит изменённый файл под версионный контроль или, еще можно сказать, начинает его отслеживание git-ом.
Как зафиксировать проиндексированные изменения?
$ git commit -m "Story 182: fix benchmarks for speed"
Команда git commit
фиксирует изменения, проиндексированные прежде с помощью git add .
в один "пакет изменений" с сопровождающим сообщением, указывающимся через атрибут -m
. То-есть полная команда будет выглядеть так: git commit -m "Вот мой коммит"
.
Можно сказать, что git commit
делает снимок проиндексированных с помощью git add
файлов.
Как применить git commit без git add?
$ git commit -a -m 'Add new benchmarks'
Если у вас есть желание пропустить этап индексирования, Git предоставляет простой способ.
Добавление параметра -a
в команду git commit
заставляет Git автоматически индексировать каждый уже отслеживаемый на момент коммита файл, позволяя обойтись без git add
.
Как отправить изменения в удалённый репозиторий?
$ git push origin master
После того, как выполнены git add
и git commit
, остается лишь выполнить git push
, чтобы отправить закоммиченные изменения в удалённый репозиторий из локального.
Что такое ветка?
Под веткой принято понимать независимую последовательность коммитов в хронологическом порядке. Однако, конкретно в Git реализация ветки выполнена как указатель на последний коммит в рассматриваемой ветке. После создания ветки уже новый указатель ссылается на текущий коммит. Имя основной ветки Git-проекта по умолчанию — master (однако зачастую бывает main, например, в GitHub), она появляется сразу при инициализации репозитория.
Как создать новую ветку?
$ git branch testing
Команда git branch <branch_name>
создаёт новую ветку.
Однако, после создания вы, скорее всего, захотите на неё переключиться с помощью команды git checkout <branch_name>
.
Для такого случая можно использовать всего одну команду вместо двух: git checkout -b <branch_name>
- она создаёт новую ветку и перемещает вас в неё.
Как удалить ветку?
git branch -d <branch_name>
Команда git branch -d <branch_name>
удаляет существующую ветку из локального репозитория.
Для удаления ветки в удаленном репозитории используйте git push origin -d <branch_name>
.