<s>[INST] поясни різницю між git switch та git checkout, простими словами. [/INST] `git switch` - використовується тільки для перемикання між гілками. 
`git checkout` - більш універсальний швейцарський ніж, окрім перемикання між гілками, його також можна використовувати для відновлення файлів.

Що ж, згідно з документацією git checkout — розділили, для того щоб прояснити два різні використання :

`git switch` тепер можна використовувати для зміни гілок, як це робить `git checkout <назва гілки>`
`git restore` можна використовувати для скидання файлів до певних версій, як це робить `git checkout -- <path_to_file>` </s>\
<s>[INST] Файно, дякую. Далі поясни, що робить ця git команда: `git branch --contains 004a868c` [/INST] За допомогою опції `--contains` ця команда показує лише гілки, які містять названий коміт (іншими словами, гілки, чиї кінцеві коміти є нащадками названого коміту). Також є опція `--no-contains`, що показує лише гілки, які не містять цього коміту. </s>