Adouz.de, 01.05.2020

كيف يعمل git؟

Git هي أداة إصدار مفتوحة المصدر،يمكن عن طريقها إنشاء إصدارات من الوثائق وتخزينها في قاعدة بيانات. مثال عملي لأستعمال Git: لم تعد لديك الحاجة لإنشاء ملفات بأسماء V1 و V2 وما إلى ذلك. مع Git من الممكن حفظ وإدارة عدة إصدارات من وثيقة في ملف واحد. Git ليس فقط مناسبًا لمطوري البرامج ، ولكن أيضًا للمصممين مثلا، حيث يمكن أيضًا استخدام Git لإدارة الصور بشكل جيد. يمكنك الحصول على سجل لملفاتك و وثائقك ويمكنك أيضًا استعادتها إلى الحالة القديمة بعد عدة تغييرات، إن اقتضت الضرورة ذلك.

العمل مع الآخرين

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

إنشاء مستودع جديد

لإنشاء مستودع (repository) جديد قم بإنشاء ملف جديد. إفتحه, و قم بتنفيذ الأمر التالي:
[pastacode lang="java" manual="git init" message="شفرة 1: إنشاء مستودع Git جديد" highlight="" provider="manual"/]

تنزيل مستودع (checkout a repository)

تنزيل نسخة عمل محليا (check out) على جهازك يتم باستخدام الأمر التالي:

[pastacode lang="java" manual="git clone /مسار/مكان/حفظ/المستودع" message="شفرة 2: تنزيل مستودع على نفس الجهاز" highlight="" provider="manual"/]

إذا كنت تستخدم مستودعًا بعيدًا، فاستخدم الأمر التالي:

[pastacode lang="java" manual="git clone إسم-المستخدم@host:/مسار/مكان/حفظ/المستودع" message="شفرة 3: تنزيل مستودع من خادم بعيد" highlight="" provider="manual"/]
بحيث أن: 
  1. host: هو المضيف، يعني الخادم البعيد، الذي أنشأ عليه المستودع المراد تنزيله. في الفالب نستعمل هنا عنوان IP.
  2. إسم المستخدم: إسم المستخدم الذي يمكنك من الولوج للخادم.
 

نبذة عن عمل Git

يتكون المستودع المحلي الخاص بك من ثلاث “نسخ” تدار بواسطة git:
  • الأولى هي نسخة عملك، والتي تحتوي على الوثائق الحقيقية.
  • والثانية هي المؤشر (Index)، التي تعمل كمرحلة وسيطة.
  • وأخيرًا وليس آخرًا، المرحلة HEAD التي تشير إلى وديعتك (commit) الأخيرة.

الإضافة والإيداع (add & commit)

يمكنك اقتراح تغييرات ( إضافة إلى المؤشر) باستخدام الأمر التالي:

[pastacode lang="java" manual="git add <إسم الوثيقة>" message="شفرة 4: إضافة وثيقة" highlight="" provider="manual"/]
[pastacode lang="java" manual="git add *" message="شفرة 5: إضافة كل الوثائق الموجودة في الملف الحالي" highlight="" provider="manual"/]

هذه هي الخطوة الأولى في سير عمل git.

بعد ذلك يمكنك تأكيد و إيداع تغييراتك (commit) باستعمال الأمر التالي: 

[pastacode lang="java" manual="git commit -m <تعليق الوديعة>" message="شفرة 6: إضافة كل الوثائق الموجودة في الملف الحالي" highlight="" provider="manual"/]

التغيير الآن في رأس (HEAD) ولكن ليس في المستودع البعيد. 

رفع و تحميل التغييرات

التغييرات الآن في رأس المستودع المحلي الخاص بك. لرفع هذه التغييرات للمستودع البعيد، قم بتنفيذ الأمر التالي:

[pastacode lang="java" manual="git push origin master" message="شفرة 6: رفع التغييرات" highlight="" provider="manual"/]

 يمكنك أيضًا استبدال المقر الرئيسي (master) بأي فرع آخر (branch). ستتعلم المزيد عن الفروع لاحقًا.

إذا لم تقم باستنساخ المستودع المحلي الخاص بك من مستودع بعيد وتريد توصيله بمستودع آخر، يمكنك القيام بذلك بتنفيذ لأمر التالي: 

[pastacode lang="java" manual="git remote add origin " message="شفرة 7: ربط المستودع المحلي بمستودع بعيد" highlight="" provider="manual"/]

أنت الآن جاهز لتحميل و رفع تغييراتك.

التفرع (branching)

تستخدم الفروع (branches) لتطوير وظائف مختلفة بمعزل عن بعضها البعض. الفرع الرئيسئ أو السيد (master) هو الفرع الأساسي، الذي ينشأ بشكل آلي عند إنشاء مستودع جديد.

يمكنك استخدام الفروع مثلا لتطوير خاصيات جديدة و عند الإنتهاء تقوم بدمجها في الفرع الرئيسي. كيفية القيام بذلك، ستتعلمها  لاحقًا.

يمكنك إنشاء فرع جديد باسم feature_x بالقيام بإدخال الأمر التالي:

[pastacode lang="java" manual="git checkout -b feature_x" message="شفرة 8: إنساء فرع جديد" highlight="" provider="manual"/]

 للتوجه مرة أخرى إلى الفرع الرئيسي، استخدم هذا الأمر: 

[pastacode lang="java" manual="git checkout master" message="شفرة 9: التوجه للفرع الرئيسي" highlight="" provider="manual"/]

لحذف الفرع الجديد:

[pastacode lang="java" manual="git branch -d feature_x" message="شفرة 10: حذف فرع" highlight="" provider="manual"/]

الفرع الذي أنشأته للتو، لا يتوفر  للآخرين حتى تقوم بتحميله إلى المستودع البعيد الخاص بك:

[pastacode lang="java" manual="git push origin " message="شفرة 11: رفع فرع" highlight="" provider="manual"/]

تحديث ودمج (update & merge)

لتحديث (update) مستودعك المحلي بأحدث التغييرات ، استخدم الأمر التالي:

[pastacode lang="java" manual="git pull" message="شفرة 12: تحديث" highlight="" provider="manual"/]

 هذا الأمر يقوم بتنزيل و جلب التغييرات البعيدة أولاً (fetch) ثم دمجها (merge) مع محتواك المحلي.

إذا كنت تريد دمج فرع آخر مع الفرع الحالي (مثل الفرع الرئيسي)، فاستخدم: 

[pastacode lang="java" manual="git merge " message="شفرة 13: دمج فرع مختلف" highlight="" provider="manual"/]

في كلتا الحالتين، يحاول git دمج التغييرات تلقائيًا. لسوء الحظ، هذا ليس ممكنًا دائمًا وينتهي بصراع بين التغييرات المحلية و البعيدة.

مسؤولية حل هذه الصراعات تقع على عاتقك عن طريق تحرير الوثائق المتعارضة يدويًا.

عند الانتهاء، عليك أن تخبر Git بذلك بالأمر التالي:

[pastacode lang="java" manual="git add <إسم الوثيقة>" message="شفرة 14: تأكيد حل صراع الوثائق" highlight="" provider="manual"/]
قبل دمج التغييرات، يمكنك أيضًا النظر في الاختلافات، و ذلك بالتعبير التالي:
[pastacode lang="java" manual="git diff <الفرع_المستهدف> <الفرع_المصدر>" message="شفرة 15: مقارنة فرعين" highlight="" provider="manual"/]

اترك تعليقاً