برای ساخت repository که قرار است در یک سرور مرکزی به اشتراک گذاشته شود به شکلی که بقیه اعضای تیم به آن وصل شده و با دستور git clone یا git pull از آخرین تغییرات صورت گرفته از کد یک کپی داشته باشند.این نوع ساختن repository فقط شامل یک پوشه به اسم .git می باشد که تاریخچه تغییرات رو کد را نگه میدارد.و دیگر شامل working directory یا همان کدهای قابل تغییر نیست.وقتی وارد پوشه این repo میشویم فقط پوشه .git را میبینیم و دیگر اثری از source code ها نیست.این نوع فقط برای اشتراک گذاری استفاده میشود.
ولی وقتی شما از دستور git init برای ساخت repo استفاده میکنید علاوه بر پوشه .git (که تاریخچه تغییرات کد را حفط میکند) سورس کدها را نیز در کنار این پوشه مبینید و میتوانید روی آنها تغییرات انجام دهید - فایل کم و زیاد کنید و ... این نوع فقط برای کارکردن بروی پروژه استفاده میشود.
نتیجه گیری:پس برای ایجاد یک پروژه اشتراکی ابتدا باید با دستور git init –bare یک repo اشتراکی در سرور مرکزی میسازیم.در سیستم های local (برنامه نویسان پروژه) با استفاده از دستور git clone یا git init کل پروژه را از انبار اشتراکی گرفته و بروری آن کار میکنیم.بعد از انجام تغییرات با استفاده از دستورات git add و git commit ابتدا پوشه .git محلی را بروز میکنیم و سپس با git push پوشه .git در سرور مرکزی را به روز میکنیم.در سری های بعد برای اینکه هر بار لازم نباشد کل پروژه را دریافت نمایند به جای git clone با استفاده از دستور git pull آخرین تغییرات پروژه را دریافت میکنند.یعنی با git pull پوشه .git محلی خود را با .git سرور مرکزی سینک میکنیم.