Приходилось ли пользоваться Git через терминал или GUI
Что проверяют
Вопрос выглядит разминочным, но по ответу видно, понимаете ли вы модель Git или помните набор кнопок. Для инженера на Go терминал ещё и рабочая необходимость: сборка, модули, работа на сервере, где графической оболочки нет.
Как отвечать
Скажите, что пользуетесь обоими, и объясните разделение. Терминал: всё, что нужно повторять и скриптовать, разбор истории через git log --oneline --graph и git blame, поиск сломавшего коммита через git bisect, точные операции вроде git rebase -i и git cherry-pick, спасение через git reflog. Графический клиент или встроенный в редактор: чтение диффа, добавление в коммит отдельных кусков файла, разбор конфликта в трёх панелях, история конкретного файла.
Дальше покажите модель, это и отличает уверенного пользователя: коммит это снимок дерева со ссылкой на родителя, ветка это подвижный указатель, слияние создаёт коммит с двумя родителями, а перебазирование создаёт новые коммиты, поэтому его не применяют к тому, что уже отправлено и используется другими.
Полезная специфика Go: собранные бинарники в игнорируемых, go.sum коммитится всегда, теги вида vX.Y.Z обязательны, иначе модуль не увидят как выпущенный.
Где спотыкаются
Нажимают кнопки и не понимают результата. После неудачного слияния не могут сказать, где оказались изменения, и клонируют репозиторий заново вместо того, чтобы посмотреть git reflog.
Второе: путают git revert и git reset. Первый создаёт обратный коммит и безопасен в общей ветке, второй двигает указатель и уносит незакоммиченное, а принудительная отправка поверх общей ветки стирает чужую работу.
Третье: коммитят одной огромной пачкой с бессмысленным описанием, а в неё случайно попадает файл с ключами. Удаление файла следующим коммитом не лечит: секрет остаётся в истории, и его придётся отзывать.