مساله اینه که من میخوام مخازن git که روی راسبریپی خونه دارم رو با بقیه اعضای تیم به اشتراک بزارم. قبلا کارهای مربوط به dynamic dns و port forwarding رو انجام دادم (+ و +) و میشه از طریق ssh با یه آدرس ثابت به خونه وصل شد. بقیه کار سادست. الان مراحل کار رو میگم و بعد یه مثال میزنم.
۱- برای هر کدوم از اعضای تیم یه یوزر میسازم.
۲- برای هر پروژه یه گروه میسازم.
۳- اعضای هر پروژه رو به گروه اون پروژه اضافه میکنم.
۴- یه فولدر تو روت فایل سیستم میسازم به اسم git.
۵- برای هر پروژه تو فولدر git یه فولدر میسازم و مالکش رو به گروه اون پروژه تغییر میدم.
توجه: دستورات قدمهای ۱ تا ۵ رو میتونید تو این لینک پیدا کنید.
۶- قدم خیلی مهم: تنظیم میکنم که از این به بعد هر فایل جدیدی که تو فولدر پروژه ساخته میشه مال گروه همون پروژست. (منبع)
۷- یه ریپو خالی تو اون دایرکتوری ایجاد میکنم. (+)
۸- حالا کاربر میتونه از راه دور به مخزن وصل بشه و پوش کنه.
مثال کاربر user1 برای پروژه myproject:
[bash]
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
[/bash]
و در سمت کاربر:
[bash]
git remote add origin ssh://example.com:/git/myproject.git
git push -u origin master
[/bash]
به روز رسانی:
دستورات رو اصلاح کردم و به علاوه چک میکنم که پروژهای که ساخته شده حتما برای کار با گروهها تنظیم شده باشه. (+)
[bash]
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 ‘{}’ +
[/bash]
به روز رسانی ۲:
برای اضافه کردن ریپوی اشتراکی یه اسکریپت کوچیک دارم که رو گیست به اشتراک گذاشتهام.