اذهب إلى المحتوى

تنصيب وإعداد Git وgitolite للتحكم في الإصدارات على أوبنتو


عبد اللطيف ايمش

ubuntu-server-vcs-git-gitolite.thumb.png

نظام التحكم بالإصدارات Git

إن Git هو نظام تحكم بالإصدارات موزَّع (distributed) ومفتوح المصدر مطوَّر من لينوس تورفالدس لدعم تطوير نواة لينُكس؛ حيث يكون كل مجلد في Git عبارة عن مستودع مع تأريخ كامل وإمكانيات لتتبع الإصدارات، وليس متعمِدًا على الوصول على الشبكة أو على خادوم مركزي.

التثبيت

يمكن تثبيت نظام التحكم بالإصدارات git باستخدام الأمر الآتي:

sudo apt-get install git

الضبط

يجب لكل مستخدم git أن يعرِّف نفسه أولًا إلى git، وذلك بتنفيذ الأمرّين الآتيين:

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

الاستخدام الأساسي

ما سبق يكفي لاستخدام git في طريقة موزعة وآمنة، حيث يُفترَض أنَّ المستخدمين يستطيعون الوصول إلى الخادوم عبر SSH؛ حيث يمكن إنشاء مستودع جديد على الخادوم بالأمر:

git init --bare /path/to/repository

ملاحظة: الأمر السابق يُنشِئ مستودعًا «فارغًا» (bare)، أي أنه ليس بالإمكان استخدامه للتعديل على الملفات مباشرةً. إذا أردت الحصول على نسخة من محتويات المستودع على الخادوم، فاحذف الخيار ‎--bare.

يمكن لأي عميل يملك وصولًا عبر SSH إلى الخادوم أن ينسخ المستودع بالأمر:

git clone username@hostname:/path/to/repository

بعد نسخ الملفات إلى جهاز العميل، يمكنه تعديلها ثم إيداعها ومشاركتها بالأوامر:

cd /path/to/repository
# edit some files
git commit -a # Commit all changes to the local version of the repository
git push origin master # Push changes to the server's version of the repository

تثبيت خادوم gitolite

على الرغم من أنّ ما سبق كافٍ لإنشاء ونسخ وتعديل المستودعات، لكن المستخدمين الذين يريدون تثبيت git على خادوم سيريدون عمومًا إنجاز المهام في git كنظام إدارة التحكم بالأكواد المصدرية تقليدي؛ وعند وجود عدِّة مستخدمين وامتيازات وصول لهم، فالحل الأمثل هو تثبيت gitolite كما يلي:

sudo apt-get install gitolite

ضبط Gitolite

ضبط خادوم Gitolite مختلف قليلًا عن معظم الخواديم في الأنظمة الشبيهة بِيونكس؛ فبدلًا من ملفات الضبط التقليدية في ‎/etc/‎، فإن gitolite يُخزِّن الضبط في مستودع git؛ أول خطوة لضبط تثبيت جديد هي السماح بالوصول إلى مستودع الضبط.

أولًا، علينا إنشاء مستخدم لأجل gitolite لكي نصل إليه عبره:

sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/git git

سنترك الآن gitolite لكي يعرف عن مفتاح SSH العمومي لمدير المستودع؛ هنا نفترض أن المستخدم الحالي هو مدير المستودع؛ إذا لم تضبط مفتاح SSH بعد، فراجع الدرس الخاص بخادوم OpenSSH لمزيدٍ من التفاصيل:

cp ~/.ssh/id_rsa.pub /tmp/$(whoami).pub

لنبدِّل إلى المستخدم git ونستورد مفتاح المدير إلى gitolite:

sudo su - git
gl-setup /tmp/*.pub

سيسمح Gitolite لك بعمل تغيرات مبدئية لضبطه أثناء عملية الإعداد؛ يمكنك الآن نسخ وتعديل مستودع ضبط gitolite من المستخدم المدير (المستخدم الذي استوردت مفتاح SSH العمومي الخاص به)؛ عُد إلى ذاك المستخدم، ثم انسخ مستودع الضبط:

exit
git clone git@$IP_ADDRESS:gitolite-admin.git
cd gitolite-admin

المجلد gitolite-admin فيه مجلدين فرعيين، المجلد «conf» و «keydir»؛ ملفات الضبط موجودة في مجلد conf، ويحتوي مجلد keydir على مفاتيح SSH العمومية للمستخدم.

إدارة مستخدمي ومستودعات gitolite

إضافة مستخدمين جدد إلى gitolite هي عملية سهلة: احصل على مفتاح SSH العمومي لهم ثم أضفه إلى مجلد keydir بالاسم USERNAME.pub، لاحظ أن أسماء مستخدمي gitolite لا تطابق بالضرورة أسماء مستخدمي النظام، حيث تُستخدَم أسمائهم في ملف ضبط gitolite فقط، وذلك لإدارة التحكم بالوصول؛ وبشكل مشابه، يمكن حذف المستخدمين بحذف ملف المفتاح العمومي الخاص بهم؛ ولا تنسَ أن تودع التغييرات وتدفعها إلى خادوم git بعد كل تعديل:

git commit -a
git push origin master

تُدار المستودعات بتعديل الملف conf/gitolite.conf؛ الشكل العام له هو قيود مفصولة بفراغات تُحدِّد ببساطة قائمةً بالمستودعات ثم بعض قواعد الوصول؛ ما يلي هو المثال الافتراضي لهذا الملف:

repo      gitolite-admin
          RW+     =   admin
          R       =   alice

repo      project1
          RW+     =   alice
          RW      =   bob
          R       =   denise

استخدام خادومك

لاستخدام الخادوم المُنشَأ حديثًا، يجب أن يستورد مدير gitolite مفاتيح المستخدمين العمومية إلى مستودع ضبط gitolite، ثم يمكنهم الوصول إلى أي مستودع لهم حق الوصول إليه عبر الأمر الآتي:

git clone git@$SERVER_IP:$PROJECT_NAME.git

أو إضافة مشروع في الخادوم عن بعد:

git remote add gitolite git@$SERVER_IP:$PROJECT_NAME.git

ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Git.


تفاعل الأعضاء

أفضل التعليقات

Git هو مدير شفرة المصدر (SCM). بشكل أكثر دقة ، إنه نظام تحكم في الإصدار الموزع. لكن ما الذي يعنيه ذلك؟ Git هو برنامج ، Git ليست لغة أو مفهوم أو أفضل ممارسة. إنه برنامج ، برنامج يجب أن تستخدمه في تطويرك ، تمامًا مثل محرر النصوص أو عميل FTP.

اضغط على روابط الفيديو - دورة مقدمة من  قناة مهدي نصائح التكنولوجيا Mehdi Tech Tips l باللغة العربية:
1- مدخل إلى Git - تعلم Git
2- نشأة Git - تعلم Git
3- ما هو جيت ولماذا يجب استخدامه - تعلم Git
4- كيف يعمل Git - تعلم Git
5- ماهو مستودع جيت - تعلم GIT
6- ماهو جيت هاب - تعلم GitHub
7- تثبيت وإعداد جيت على أنظمة التشغيل: وندويز 10، لينكس، ماك، يونكس
8- كيفية تثبيت واستخدام Git على ويندوز 10 - Windows 10
9- كيفية تثبيت Git على ريدهات لينكس - Red Hat Enterprise Linux 8
10- كيفية تثبيت وتكوين Git على دبيان 10 لينكس- Debian 10 Buster
11- تثبيت Git على فري بي ‌إس ‌دي 12.1 - FreeBSD
12- كيفية تنزيل وتثبيت Git لنظام التشغيل ماك أو إس هاي سييرا - MacOs Sierra
13- كيفية تثبيت Git على نظام التشغيل أندرويد بمساعدة Termux
14- تكوين git على ويندوز 10 وتغيير محرر النصوص

الدورة مستمرة سأقوم بإضافة الروابط للفيديوهات الجديدة ؛ مشروع مليون مبرمج أو مطور عربي

#git #شرح_git

تم التعديل في بواسطة Mehdi Techtips
رابط هذا التعليق
شارك على الشبكات الإجتماعية



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...