Назовите основные команды git
Что проверяют
Работали ли вы с git осмысленно. Вопрос простой, но по формулировке ответа видно уровень.
Как отвечать
Не перечисляйте алфавитом, сгруппируйте по задачам.
Локальная работа: git status, git add, git commit -m, git diff (незастейдженное) и git diff --staged, git log --oneline --graph.
Ветки: git branch, git switch (современная замена checkout для веток), git switch -c для новой, git merge, git rebase.
Обмен с удалённым: git clone, git fetch (забрать, ничего не меняя локально), git pull (это fetch плюс merge или rebase), git push, git remote -v.
Разбор ситуаций: git stash и git stash pop, git restore для отката файла, git reset для перемещения указателя ветки, git revert для отменяющего коммита, git cherry-pick, git blame, git bisect для поиска коммита, сломавшего поведение.
Сильный ответ добавляет различия, за которые обычно и цепляются:
resetпротивrevert: первый переписывает историю и годится только для локальных коммитов, второй создаёт новый коммит и безопасен для запушенного;--soft,--mixed,--hard: что происходит с индексом и рабочим каталогом;mergeпротивrebase: слияние сохраняет историю как было, перебазирование делает её линейной, но переписывает коммиты, поэтому перебазировать общую ветку нельзя;fetchпротивpull: первый не трогает рабочую копию.
Где спотыкаются
Называют git pull и git fetch синонимами.
Не понимают, чем reset --hard опасен в общей ветке.
Не могут объяснить, что делает git add кроме «добавляет файл».
Знают только графический клиент и теряются без него.