Я имею в виду, когда git создает локальную ветку, создает ли она копию главной ветви, которую вы можете редактировать? Если да, где находятся эти копии?
Ветка не является копией. Ветвь в Git - это просто «указатель» на последний коммит. Объект фиксации указывает на их родителя (ов), и таким образом вы получаете всю «ветку».
Так что, как только вы переходите от мастера, вы получаете еще один указатель на тот же коммит. Ни меньше, ни больше. Теперь и мастер, и ветвь указывают на один и тот же коммит. Теперь, когда вы продолжаете фиксировать в ветке, указатель ветви продолжает перемещаться, чтобы указывать на его специфичные для ветви фиксации.
Если по какой-либо причине я запутался в своей локальной ветке, как мне отменить изменения (скажем, например, я хочу вернуться к тому, что было, когда я вытащил мастер)? Это просто вопрос возврата к мастеру и удаления локальной ветки?
Если вам не нравится ветка, просто удалите ее - git branch -d hotfix
Ветви в Git дешевы, так как, как я сказал, это просто указатель на коммит, что означает, что это файл, содержащий 41 символ Контрольная сумма SHA-1 в .git\refs\heads\branchname
Если вы не хотите удалять ветку, сбросьте предыдущий коммит, используя что-то вроде git reset --hard HEAD~1
Я полагаю, что причина, по которой люди называют это контролем версий, заключается в ветвях, которые, я думаю ... Представляет версию. Я прав?
Мы называем их контролем версий из-за каждой ревизии или фиксации, которая является единицей изменения. Ветвь - это набор изменений, произошедших с определенной точки фиксации или точки ветвления. \
PS: Я, конечно, перефразирую ProGit, поэтому, поскольку вы прокомментировали, что прочитали его, я не уверен, что мой ответ поможет.