Питання на співбесіді з Git (Senior) з відповідями
76 запитань для співбесіди з теми Git (Senior) - з правильними відповідями, поясненнями й посиланнями на документацію.
Пройти цей тест- 1.Які чотири типи об'єктів складають базу об'єктів Git?
- 2.Чому перейменування файлу не дублює його вміст у сховищі Git?
- 3.Що таке ref усередині Git?
- 4.Що робить
git gc? - 5.Як packfile допомагають тримати репозиторій малим?
- 6.Чому коміт, якого вже немає в жодній гілці, ще можна відновити?
- 7.На що Git переходить замість SHA-1 і чому?
- 8.Що порівнює тристороннє злиття?
- 9.Що таке
ort? - 10.Чим відрізняються
-s oursі-X oursпри злитті? - 11.Що таке octopus-злиття?
- 12.Як прибрати секрет, що витік, з усієї історії репозиторію?
- 13.Чому
git filter-branchсьогодні не радять? - 14.Колега зробив force-push, і ваш
mainрозійшовся. Як найбезпечніше відновитися? - 15.Що робить частковий клон з
--filter=blob:none? - 16.Чому
git statusгальмує в дуже великих репозиторіях і що допомагає? - 17.Що таке refspec, наприклад
+refs/heads/*:refs/remotes/origin/*? - 18.Submodule чи subtree: у чому головний компроміс?
- 19.Чому revert злиття може завадити, коли гілку згодом зливають знову?
- 20.Як
git cherryчи виявлення patch-id допомагає після cherry-pick? - 21.У чому допомагає
git rebase --update-refsдля гілок-стеків? - 22.Яку проблему розв'язує merge queue?
- 23.Чому кожен коміт у
mainмає збиратися й проходити тести, а не лише фінальний стан PR? - 24.Що робити з комітами, які неможливо перевірити під час
git bisect? - 25.Завдяки чому працює
git bisect run ./test.sh? - 26.Чому підписаний коміт ще не доводить, що код безпечний?
- 27.Що може серверний хук
pre-receive, чого не можуть клієнтські? - 28.Що дає змогу прикріпити
git notes? - 29.Чому гілка з назвою
featureможе заважати створитиfeature/login? - 30.Що технічно являє собою індекс (staging area)?
- 31.Що таке стадії індексу 1, 2 і 3 під час конфлікту?
- 32.Як під час злиття взяти саме «їхню» версію конфліктного файлу?
- 33.Що означають «ours» і «theirs» під час
git rebase main? - 34.Що робить
git replace? - 35.Яку проблему розв'язує блокування файлів у Git LFS?
- 36.Чому випадково закомічені величезні файли - довгострокова проблема навіть після видалення?
- 37.Що покращує протокол Git v2?
- 38.Що створює
git clone --mirror? - 39.Навіщо потрібен файл commit-graph?
- 40.Навіщо використовують стеки пул-реквестів?
- 41.Як Conventional Commits дають змогу автоматизувати релізи?
- 42.З чим має труднощі
git log --follow? - 43.Чому
git blameможе показати не того автора після розділення файлу на два? - 44.Що таке перехресна (criss-cross) історія злиттів?
- 45.Як випустити реліз, вихідний код якого можна точно відтворити?
- 46.Чому деякі команди забороняють merge-коміти з
mainу гілки фіч? - 47.Що стається з відкритими пул-реквестами, коли переписують історію
main? - 48.Для чого корисний
git bundle? - 49.Чим цікава команда
git push origin main:production? - 50.Який ризик несе
git config --global url."git@github.com:".insteadOf? - 51.Як найкраще працювати з обліковими даними для HTTPS-репозиторіїв?
- 52.Що налаштовує
git maintenance start? - 53.Чому «merge-коміт чи squash» - рішення команди, а не особисте?
- 54.Що таке символьне посилання (symbolic ref)?
- 55.Як перевірити, що об'єкти репозиторію не пошкоджені?
- 56.Чому
git push --forceу спільну гілку небезпечний навіть за наявності бекапів у CI? - 57.Який компроміс монорепозиторію на Git порівняно з багатьма репозиторіями?
- 58.Чому коміти після rebase зберігають дату автора, але змінюють дату коміттера?
- 59.Що показує
git log --cherry-pick --left-right A...B? - 60.Як не дати величезному diff
package-lock.jsonзаглушити справжню зміну на рев'ю? - 61.Що дає власний драйвер злиття в
.gitattributes? - 62.Чому переписування історії в open-source проєкті з форками особливо руйнівне?
- 63.Яка головна причина того, що Git створює гілки за сталий час?
- 64.Як
git rerereповодиться з довгим rebase, який ви скасували й робите знову? - 65.Чому CI на поверхневому клоні може неправильно визначити змінені файли?
- 66.Що таке «висячий» (dangling) коміт?
- 67.Чому не варто класти секрети в повідомлення комітів, назви гілок чи тегів?
- 68.Що створює
git switch --orphan docs? - 69.Чому двоє розробників можуть бачити різний результат тієї самої команди
git log? - 70.Коли
git merge --no-ffкорисний, навіть якщо можливий fast-forward? - 71.Що дає рев'юеру
git range-diffпісля оновлення PR через force-push? - 72.Чому
git stashризиковано використовувати як довгострокове сховище? - 73.Що виводить
git log --merges --first-parentнаmain? - 74.Чим загрожує дуже велика кількість refs (наприклад, мільйони refs PR)?
- 75.Чому
git worktreeбезпечніший за два клони репозиторію для паралельної роботи? - 76.Що відбувається з хешами комітів, якщо зробити rebase на ту саму базу без змін?