8 питань
Питання на співбесіді з Git
Питання рівня Junior
1. Чим
git commitвідрізняється відgit push?Відповідь
git commitзберігає знімок проіндексованих змін у локальному репозиторії, нікуди не надсилаючи його.git pushвідправляє локальні коміти у віддалений репозиторій, наприклад на GitHub. Перед комітом зміни додають в індекс черезgit add. Тому можна зробити кілька комітів офлайн і запушити їх разом пізніше.Додаткове питання: Що робити, якщо
git pushвідхилено, бо на remote є нові коміти?2. Що таке гілка в Git і навіщо вона потрібна?
Відповідь
Гілка в Git це легкий рухомий вказівник на коміт, тому створити її майже нічого не коштує. Нові коміти зсувають вказівник поточної гілки вперед, а
HEADпоказує, на якій гілці ви зараз. Гілки дозволяють паралельно працювати над задачами, не ламаючи основну гілку. Створюють і перемикаються черезgit switch -c nameабоgit checkout -b name.Додаткове питання: Що таке detached HEAD і як із нього вийти, не втративши коміти?
3. У чому різниця між
git fetchіgit pull?Відповідь
git fetchзавантажує нові коміти й гілки з remote і оновлює гілки на кшталтorigin/main, але не чіпає ваші локальні гілки.git pullробитьfetch, а потім одразу інтегрує зміни в поточну гілку через merge або rebase.fetchбезпечний: можна спершу подивитися, що прийшло, і лише потім вирішити, як зливати.Додаткове питання: Що робить
git pull --rebaseі коли він кращий за звичайний pull?4. Як виникає конфлікт злиття і як його розв'язати?
Відповідь
Конфлікт виникає, коли дві гілки по-різному змінили ті самі рядки файлу або одна змінила файл, а інша видалила. Git зупиняє злиття і позначає спірні місця маркерами
<<<<<<<,=======і>>>>>>>. Треба вручну залишити правильний варіант, прибрати маркери, додати файл черезgit addі завершити злиття комітом. Якщо щось пішло не так,git merge --abortповертає стан до злиття.Додаткове питання: Як зменшити кількість конфліктів у команді?
5. Навіщо потрібні
git stashі файл.gitignore?Відповідь
git stashтимчасово ховає незакомічені зміни і повертає чисту робочу копію, щоб, наприклад, перемкнутися на іншу гілку. Повернути їх можна черезgit stash popабоgit stash apply..gitignoreперелічує шаблони файлів, які Git не повинен відстежувати:node_modules, збірки,.envз секретами. Він не діє на файли, які вже додані в репозиторій, їх треба прибрати черезgit rm --cached.Додаткове питання: Як закомітити порожню папку, якщо Git не відстежує порожні директорії?
Питання рівня Middle
1. Чим
git mergeвідрізняється відgit rebase? Коли що використовувати?Відповідь
mergeоб'єднує історії гілок і створює merge-коміт, зберігаючи реальну історію без змін.rebaseпереносить ваші коміти поверх іншої гілки, створюючи нові коміти з іншими хешами, тому історія стає лінійною. Rebase зручний для оновлення власної гілки перед PR. Не можна робити rebase комітів, які вже опубліковані й використовуються іншими, бо це переписує спільну історію.Додаткове питання: Для чого використовують інтерактивний rebase?
2. Чим
git resetвідрізняється відgit revert?Відповідь
git resetпереміщує вказівник гілки на інший коміт, фактично прибираючи наступні коміти з історії. Режими--soft,--mixedі--hardвизначають, чи залишаться зміни в індексі, у робочій копії чи зникнуть зовсім.git revertстворює новий коміт, який скасовує зміни вказаного коміту, і не переписує історію. Тому для вже запушених комітів у спільній гілці використовуютьrevert.Додаткове питання: Як повернути коміти після помилкового
git reset --hard?3. Що робить
git cherry-pickі коли він доречний?Відповідь
git cherry-pick <hash>бере зміни конкретного коміту і застосовує їх поверх поточної гілки як новий коміт з іншим хешем. Його використовують, щоб перенести окремий фікс, наприклад зmainу гілку релізу, не зливаючи всю гілку. Як і при злитті, можуть виникнути конфлікти. Часте використання створює дублікати комітів у різних гілках, тому це точковий інструмент.Додаткове питання: Як знайти коміт, який зламав функціональність, якщо відомо лише хорошу й погану версії?
Тренуй ці питання
Вчи картки, відповідай текстом або голосом і отримуй оцінку AI. Потрібен вхід в акаунт.
Відповідай уголос і отримуй оцінку
Тут питання з еталонними відповідями. У застосунку ShortLesson ти відповідаєш сам, текстом або голосом, а AI оцінює відповідь за критеріями і ставить додаткове питання, як на справжній співбесіді.
Застосунок незабаром з'явиться в магазинах.