Я честно не ясен на семантике здесь. Они - все о копиях/вариантах code+history единицы, но мимо этого я не уверен, что мог сказать. Эта логическая структура объяснена где-нибудь?
Репозиторий - это просто место, где хранится история вашей работы. Часто он находится в подкаталоге .git
вашей рабочей копии - копии самого последнего состояния файлов, над которыми вы работаете.
Чтобы разветвить проект (взять исходный код из чьего-то репозитория в определенный момент времени и применить к нему свои собственные расходящиеся изменения), вы должны клонировать удаленный репозиторий, чтобы создать его копию, а затем выполнять свою работу в своем локальный репозиторий и зафиксируйте изменения.
Внутри репозитория у вас есть ветки, которые фактически являются ветвями внутри вашего собственного репозитория. Ваши ветки будут иметь предковую фиксацию в вашем репозитории и будут отличаться от этой фиксации с вашими изменениями. Позже вы можете объединить изменения вашей ветки. Филиалы позволяют работать с несколькими разнородными функциями одновременно.
Вы также можете отслеживать отдельные ветки в удаленных репозиториях. Это позволяет вам извлекать изменения из веток другого человека и объединять их в свою собственную ветку. Это может быть полезно, если вы и ваш друг вместе работаете над новой функцией.
В Интернете есть множество отличных книг по git.Для начала ознакомьтесь с ProGit и Git Magic , а также с официальными руководствами и книгой сообщества.