Представьте себе ситуацию, когда несколько людей работают над одним файлом в одно и то же время. Но что случится если вы в данный момент изменяете содержимое какого-нибудь файла и другой человек вносит его собственные изменения и передает их в ваш репозиторий!Содержимое вашего файла изменится или файл может перестать существовать в результате действий с другого конца.
Есть два способа решения этой проблемы:
Удалённый репозиторий — это обычно голый (чистый, bare) репозиторий — Git-репозиторий, не имеющий рабочего каталога. Поскольку этот репозиторий используется только для обмена, нет причин создавать рабочую копию на диске, и он содержит только данные Git'а. Проще говоря, голый репозиторий содержит только каталог .git вашего проекта и ничего больше.
Рабочий каталог - это каталог в котором размещены наши исходные файлы. Например файл content.docx в Workbench.
Bare-репозиторий действует как посредник между всеми клонами и вашим исходным репозиторием, который содержит рабочий каталог. Нельзя просто так передавать (push) от клона к источнику клона, если источник содержит рабочий каталог.
CLI:
Данная команда создает bare clone репозитория Workbench в общей папке generic_share.
GUI:
1) Скопировать .git каталог из существующего репозитория и вставить его с другим именем different_name.git вне репозитория.
Например копируем C:\Users\raviepic3\Desktop\Workbench\.git в C:\generic_share\Bare_Workbench.git
2) Открыть config файл внутри Bare_Workbench.git и установить в нем bare = true
Есть два способа решения этой проблемы:
- Gitolite server;
- общая папка с bare-репозиториями.
Удалённый репозиторий — это обычно голый (чистый, bare) репозиторий — Git-репозиторий, не имеющий рабочего каталога. Поскольку этот репозиторий используется только для обмена, нет причин создавать рабочую копию на диске, и он содержит только данные Git'а. Проще говоря, голый репозиторий содержит только каталог .git вашего проекта и ничего больше.
Рабочий каталог - это каталог в котором размещены наши исходные файлы. Например файл content.docx в Workbench.
Bare-репозиторий действует как посредник между всеми клонами и вашим исходным репозиторием, который содержит рабочий каталог. Нельзя просто так передавать (push) от клона к источнику клона, если источник содержит рабочий каталог.
CLI:
git clone --bare C:\Users\raviepic3\Desktop\Workbench C:\generic_share\ Bare_Workbench
Данная команда создает bare clone репозитория Workbench в общей папке generic_share.
GUI:
1) Скопировать .git каталог из существующего репозитория и вставить его с другим именем different_name.git вне репозитория.
Например копируем C:\Users\raviepic3\Desktop\Workbench\.git в C:\generic_share\Bare_Workbench.git
2) Открыть config файл внутри Bare_Workbench.git и установить в нем bare = true