مساله اینه که من میخوام مخازن git که روی راسبریپی خونه دارم رو با بقیه اعضای تیم به اشتراک بزارم. قبلا کارهای مربوط به dynamic dns و port forwarding رو انجام دادم (+ و +) و میشه از طریق ssh با یه آدرس ثابت به خونه وصل شد. بقیه کار سادست. الان مراحل کار رو میگم و بعد یه مثال میزنم.
۱- برای هر کدوم از اعضای تیم یه یوزر میسازم.
۲- برای هر پروژه یه گروه میسازم.
۳- اعضای هر پروژه رو به گروه اون پروژه اضافه میکنم.
۴- یه فولدر تو روت فایل سیستم میسازم به اسم git.
۵- برای هر پروژه تو فولدر git یه فولدر میسازم و مالکش رو به گروه اون پروژه تغییر میدم.
توجه: دستورات قدمهای ۱ تا ۵ رو میتونید تو این لینک پیدا کنید.
۶- قدم خیلی مهم: تنظیم میکنم که از این به بعد هر فایل جدیدی که تو فولدر پروژه ساخته میشه مال گروه همون پروژست. (منبع)
۷- یه ریپو خالی تو اون دایرکتوری ایجاد میکنم. (+)
۸- حالا کاربر میتونه از راه دور به مخزن وصل بشه و پوش کنه.
مثال کاربر user1 برای پروژه myproject:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ |
useradd -m user1 groupadd myproject useradd -Gmyproject user1 mkdir -p /git/myproject.git chgrp -R myproject /git/myproject.git chmod -R g+rws /git/myproject.git cd /git/myproject.git git init --bare |
و در سمت کاربر:
۱ ۲ |
git remote add origin ssh://example.com:/git/myproject.git git push -u origin master |
به روز رسانی:
دستورات رو اصلاح کردم و به علاوه چک میکنم که پروژهای که ساخته شده حتما برای کار با گروهها تنظیم شده باشه. (+)
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ |
useradd -m user1 groupadd myproject useradd -Gmyproject user1 mkdir -p /git/myproject.git cd /git/myproject.git git init --bare git config core.sharedRepository group chgrp -R myproject . chmod -R g+rwX . find . -type d -exec chmod g+s '{}' + |
به روز رسانی ۲:
برای اضافه کردن ریپوی اشتراکی یه اسکریپت کوچیک دارم که رو گیست به اشتراک گذاشتهام.