Работа веток в Git
Пожалуйста, объясните простым языком, как работают ветки в Git.
Какая их основная задача?
Ответы (2 шт):
Ветка - это "копия" проекта, в которой происходит разработка чего-либо. Разработка окончена и протестирована? Слили в основную ветку. Коммиты - типо, бекапов, после определенных изменений в проекте. Это если очень кратко. Неплохая статья, даже коротенький курс по Git - Урок 3. Ветвление
работать с Git'ом только через Git Bash
Если работаешь в VSC можно через встроенный терминал, либо (что удобнее) через "Встроенную систему управления версиями". Посмотри также в сторону приложения GitHub Desktop.
В гите ветка - это ссылка на коммит. Она нужна для того, чтобы находить коммит, которым оканчивается цепочка изменений в файлах. Каждый коммит содержит какие-то изменения в файлах и ссылку на предыдущий. Эти изменения и ссылка фиксированы. Ветка же не содержит никаких данных, только ссылку на произвольный коммит.
На картинке серые кружки со стрелками - это коммиты, а синие прямоугольники со стрелками - ветки.

Когда выполняется команда git checkout <branch> то по названию ветки находится коммит и затем, применяя изменения в файлах по цепочке коммитов вплоть до этого, состояние файлов приводится к тому, которое было, когда создали коммит, на который указывает ветка. Причем заметьте, что на картинке на коммит 3df ничего не ссылается, соответственно файлы нельзя просто так привести к состоянию, соответствующему этому коммиту.
Когда выполняется команда git commit, то создается новый коммит в который записываются изменения в файлах и ссылка на текущий коммит, а текущая ветка начинает указывать на этот новый коммит.
Также следует заметить, что терминология в гите радикально отличается от других VCS, прежде всего от mercurial, где под термином "ветка" подразумевается другое.