Gitc.id ⊙ "أدوات السلطة لـ git " ⊙ حقوق الطبع والنشر © 2021 جيريمي كارتر < [email protected] >

يخضع استخدام هذا البرنامج لشروط ترخيص MIT المضمّن (Github Mirror).
git باستخدام ssh و rsync التي يمكنك الدفع إليها ، مع تنشيط أدوات gitcid بداخلها.git repos ، وإضافة أدوات gitcid بداخلها.gitcid داخل كل git محلي أو عن بعد ، يمكنك إضافتها إلى أي من repos الحالية بأمر واحد.gitcid إلى repo الخاص بك ، فإنه يكتسب ميزات CI/CD مدمجة مع القليل من المساعدة من docker-compose (العمل في العمل).CI/CD pipelines بتنسيق yaml الذي قد يكون مريحًا لك إذا كنت قد استخدمت أنظمة CI/CD أخرى من قبل.dedicated git servers إلى مواقع ssh عن بُعد باستخدام أمر واحد. يوصى بتثبيتها على بعض الأجهزة المخصصة على LAN مثل Raspberry Pi Running Raspberry Pi OS (aarch64 or armhf) . كما يتم دعم أهداف Debian (amd64) العادية. ربما يعمل على بعض التوزيعات Debian-derived أيضًا ، لكن هذا لم يتم اختباره.git server الخاص بك وسيشارك تلقائيًا أي git repos التي يجدها لبقية LAN.git repos المشتركة مع واجهة مستخدم GitWeb مألوفة. سيحاول Gitcid تثبيتها من أجلك تلقائيًا إذا كانت مفقودة من نظامك ، ولكن إذا فشلت ، فقد تحتاج إلى تثبيتها بنفسك:
pip أو pip3 (مدير حزمة Python) هو الإصدار الذي يعمل بشكل صحيح. هناك عدد قليل من التبعيات المطلوبة اعتمادًا على نظام التشغيل الخاص بك ، ولكن يجب تثبيتها تلقائيًا في معظم الحالات. راجع الملفات في .gc/.gc-deps للحصول على التفاصيل الكاملة.
تأكد من تثبيت git و curl أولاً ، ثم قم بتشغيل الأمر التالي:
source <( curl -sL https://tinyurl.com/gitcid ) عندما ينتهي هذا الأمر ، سيكون قد قام بإنشاء مجلد جديد يسمى gitcid في دليلك الحالي ، وبعد ذلك سوف يجلب لك هذا المجلد الجديد.
(اختياري) أو إذا كنت تفضل ذلك ، يمكنك تشغيل هذا الأمر بدلاً من ذلك:
git clone https://gitlab.com/defcronyke/gitcid.git && cd gitcid && echo " " && .gc/init.sh -h في مجلد gitcid ، قم بتشغيل هذا الأمر:
.gc/new-remote.sh ~ /repo1.git~/repo1.gitgit clone الذي يمكنك استخدامه لاستنساخ ريبوك الجديد في أسفل الإخراج إذا كان كل شيء يعمل بشكل صحيح. يمكنك استخدام مسارات ssh عن بُعد لموقع الريبو عن بُعد الجديد أيضًا ، بدلاً من المسار المحلي ، على سبيل المثال:
.gc/new-remote.sh git1: ~ /repo1.git مثال على ذلك أمر git clone لاستنساخ ريبو git الخاص بك قد يبدو مثل هذا:
git clone git1: ~ /repo1.git && cd repo1إنها مجرد وسيلة منتظمة لاستنساخ repos git.
عندما تقوم بإنشاء ريبو عن بُعد الجديد ، سيتم منحك أيضًا أمرًا يمكنك استخدامه لإضافة ميزات GitCid إلى الريبو المستنسخة محليًا الذي استنسخته من جهاز التحكم عن بُعد. إليك نفس الأمر في حال احتجت إليه. تأكد من أنك داخل الريبو المحلي عند تشغيل هذا الأمر:
source <( curl -sL https://tinyurl.com/gitcid ) -e سيضيف الأمر أعلاه gitcid إلى repo git الخاص بك في مجلد .gitignore'd يسمى: .gc/
قم بتشغيل هذا الأمر من الدليل العالي من ريبو Gitcid ، للحصول على معلومات الاستخدام:
.gc/init.sh -hقم بتشغيل هذا الأمر من الدليل الأعلى من ريبو GIT الحالي الذي ترغب في تثبيته GITCID فيه (وهو يعمل مع كل من repos العادية والعارية):
source <( curl -sL https://tinyurl.com/gitcid ) -e ملاحظة: تحتاج الأهداف عن بُعد إلى تثبيت rsync .
قم بتشغيل أوامر .gc/init.sh من الدليل الأعلى من ريبو Gitcid ، لصنع مستودعات Gitcid الجديدة.
قم بعمل ريبو محلي جديد مع الاسم الافتراضي لـ " repo " في الدليل الحالي:
.gc/init.shقم بعمل ريبو محلي جديد:
.gc/init.sh ./local-repoقم بعمل ريبو GIT عن بُعد جديد في مسار خادم SSH المستهدف:
.gc/init.sh user@host: ~ /remote-repoقم بعمل العديد من إعادة repos الجديدة في وقت واحد ، محلي و/أو عن بعد:
.gc/init.sh local-repo1 user@host: ~ /remote-repo1 user@host: ~ /remote-repo2 ./local-repo2قم بعمل العديد من إعادة repos git العارية في وقت واحد (مناسبة لاستخدام أجهزة التحكم عن بعد GIT) ، و/أو النائية المحلية و/أو النائية:
.gc/init.sh -b user@host: ~ /remote-bare-repo1.git local-bare-repo1.git ./local-bare-repo2قم بتثبيت خادم git في موقع SSH الهدف ، باستخدام أدوات من هذا المشروع:
https://gitlab.com/defcronyke/git-server
المنصات المستهدفة المدعومة حاليًا:
قائمة أمنيات دعم النظام الأساسي (لا تتردد في اختبار اقتراحات إصلاح الإصلاح والمساهمة إذا كنت ترغب في المساعدة في إضافة دعم لهذه):
ربما يعمل على منصات Debian أو Debian الأخرى ، ولكن لم يتم اختبار هذا بعد.
تحذير: استخدم على مسؤوليتك الخاصة! يجب عليك تشغيل الأوامر في هذا القسم فقط لتثبيت خادم GIT مخصص على توزيعة Linux مثبتة حديثًا والتي تهدف إلى استخدامها فقط كخادم GIT مخصص! سيؤدي ذلك إلى تثبيت بعض التبعيات تلقائيًا ويقوم ببعض تكوينات النظام التي قد لا تفضلها على الأجهزة التي يتم استخدامها لأغراض أخرى. استخدم على مسؤوليتك الخاصة! لقد تم تحذيرك !!
قم بتثبيت git server على موقع ssh عن بُعد (أو اثنين كما في هذا المثال) ، عن طريق تشغيل الأمر التالي في محطة bash :
source <( curl -sL https://tinyurl.com/gitcid ) && .gc/new-git-server.sh -o pi@git1 $USER @gitlab عادةً ما يعمل فقط ، ومع علامة -o المستخدم أعلاه ، يجب أن يفتح تلقائيًا صفحة ويب لكل خادم GIT الذي يجده على شبكتك بعد الانتهاء من التثبيت. لمزيد من المعلومات والخيارات الأخرى ، راجع القسم التالي أدناه.
سيقوم المثال أعلاه أيضًا بتثبيت gitcid ، مما يجعل من السهل العمل مع خادم GIT. إذا قمت بالفعل بتثبيت gitcid ، فلن تحتاج إلى تثبيته مرة أخرى ، لذلك في هذه الحالة يمكنك حذف الجزء الأول من الأمر أعلاه ، على سبيل المثال:
.gc/new-git-server.sh -o pi@git1 $USER @gitlab فقط تأكد من أنك داخل gitcid/ Folder أولاً (أو أي GIT REPO الممكّن من gitcid ) ، قبل محاولة تشغيل أي أوامر gitcid .
تثبيت gitcid:
source <( curl -sL https://tinyurl.com/gitcid ) إذا نجحت ، فستكون الآن داخل المجلد الذي تم تنزيله حديثًا ./gitcid/ . يجب أن تكون داخل هذا المجلد للخطوة 2.
قم بتثبيت خادم (خادم) GIT جديد على أجهزة (أجهزة) مخصصة في موقع (مواقع) هدف ssh المعطى:
.gc/new-git-server.sh -h.gc/new-git-server.sh git1 git2 gitlab.gc/new-git-server.sh -o git1 git2 gitlab.gc/new-git-server.sh -y git1 git2 gitlab.gc/new-git-server.sh -yo git1 git2 gitlab.gc/new-git-server.sh -s git1 git2 gitlab.gc/new-git-server.sh -so git1 git2 gitlab~/.ssh/config ، ولكن إذا كنت تفضل ذلك ، فيمكنك إضافة اسم مستخدم في الأمر أدناه لكل هدف. يمكنك القيام بذلك لأي من الأوامر المختلفة المذكورة أعلاه ، على سبيل المثال: .gc/new-git-server.sh -yo pi@git1 pi@git2 $USER @gitlab إذا كان كل شيء يعمل على النحو المقصود ، فإن خادم (خادم) GIT الخاص بك أصبح الآن جاهزًا للاستخدام. انظر الإخراج في المحطة الخاصة بك لمزيد من التفاصيل. أثناء التثبيت المتوازي (السلوك الافتراضي ما لم يكن باستخدام متغيرات علامة -s ) ، إذا لم يتم تكوين دعم SUDO غير التفاعلي على الهدف ، فسوف يعود النظام إلى وضع التثبيت المتسلسل لأي أهداف تحتاج إلى كتابة كلمة مرور Sudo يدويًا. بعد كتابة كلمة مرور Sudo بمجرد نجاحها ، سيتم محاولة تكوين Sudo بدون كلمة مرور على الهدف ، بحيث يمكن تمييز أي تفاعلات مستقبلية مع هذا الهدف بالكامل.
فيما يلي بعض الأمثلة على كيفية استخدام خادم GIT الخاص بك لبعض المهام الشائعة المتعلقة بـ GIT. يجب تشغيل الأوامر التالية من داخل gitcid/ المجلد الخاص بك ، أو داخل أي repo git gitcid -gitcid.
قم بإنشاء ريبو عن بعد GIT جديد على خادم GIT ، على سبيل المثال ، repo المسمى repo1.git في اسم المضيف git1 :
.gc/new-remote.sh git1:repo1ستتوفر إعادة الاستخدام عن بُعد تم إنشاؤها حديثًا للاستخدام بعد تأخير قصير ، وعادة ما تكون أقل من دقيقة واحدة. إذا تلقيت خطأً عند محاولة استخدام ريبو عن بُعد تم إنشاؤه حديثًا ، فحاول مرة أخرى بعد مرور دقيقة واحدة منذ إنشائها ويجب أن تعمل.
استنساخ نسخة محلية من الريبو الجديد الخاص بك من الخادم:
git clone git1: ~ /git/repo1.git
cd repo1ارتكب بعض التغييرات على ريبو الجديد ، ثم ادفعه إلى جهاز التحكم عن بُعد على خادم GIT الخاص بك:
date | tee -a test1.txt
git add .
git commit -m " A test commit. "
git push (اختياري) أضف gitcid إلى نسختك المحلية من ريبو git الخاص بك إذا كنت ترغب في استخدام أي أوامر gitcid أثناء العمل داخل الريبو. قم بتشغيل الأمر التالي أثناء داخل repo لتثبيت ميزات gitcid :
source <( curl -sL https://tinyurl.com/gitcid ) -e (اختياري) مع إضافة gitcid إلى ريبو الخاص بك من الخطوة السابقة ، يمكنك الالتزام والدفع بسهولة أكبر:
.gc/commit-push.sh Commit message. إذا كنت ترغب في المساهمة في تطوير git server ، فيمكنك تشغيل هذا الأمر إذا أردت ، لمساعدتك في إعداد بيئتك dev لهذا الغرض:
source <( curl -sL https://tinyurl.com/gitcid ) -d سوف يستنسخ جميع مستودعات GIT ذات الصلة ، وسيقوم بتثبيت gitcid فيها للراحة.