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

الدليل المرجعي للعمل على نظام غيت Git


زينب الزعيم

يدير فريق مطوِّري البرامج مفتوحة المصدر والمشرفون عليها مشاريعهم عادةً من خلال نظام غيت، وهو نظام إدارة الإصدارات الموزعة التي تدعم المشاركة.

يقدم لك هذا الدليل المُعَدّ على نمط الورقة المرجعية cheat sheet مرجعًا سريعًا للأوامر التي تفيدك في العمل والمشاركة في مستودع غيت. ولتثبيت نظام غيت وإعداده اِقرأ المقالة "كيف تساهم في المشاريع مفتوحة المصدر: ابدأ بتعلم نظام غيت Git".

إليك بعض الملاحظات قبل البدء بهذا الدليل:

  • أُعِدّ هذا الدليل على نمط الورقة المرجعية وأُضيفت إليه مقتطفاتٌ مستقلة من موجّه الأوامر.
  • انتقل إلى أي قسم ذي صلة بالمهمة التي تحاول تنفيذها.
  • عندما ترى نصًا مظللًا ضمن الأوامر في هذا الدليل، تذكر أن تستبدل هذا النص بنصٍ يشير إلى الإيداعات commits والملفات الموجودة في مستودعك.

الإعداد والتهيئة

تحقَّق من إصدار نظام غيت لديك بالاستعانة بالأمر التالي، والذي سيؤكد أيضًا أن النظام مثبَّتٌ على جهازك:

$ git --version

يتيح لك غيت ضبط بعض الإعدادات، التي تُطبَّق على جميع المستودعات الموجودة على جهازك المحلي. على سبيل المثال، اِضبط اسم مستخدمٍ سيستخدمه غيت ليوثِّق به أية تعديلات تجريها على مستودع محلي:

$ git config --global user.name "firstname lastname"

اضبط عنوان البريد الإلكتروني ليُربَط مع كل علامة سجل محفوظة history marker على النحو التالي:

$ git config --global user.email "valid-email"

اضبط محرر النصوص الذي تفضله أيضًا:

$ git config --global core.editor "nano"

يمكنك تهيئة دليل العمل working directory الحالي على أنه مستودع غيت باستخدام الأمر init على النحو التالي:

$ git init

لنسخ مستودع غيت مُستضاف عن بُعد، ستستخدم الأمر git clone مع عنوان url للمستودع أو موقع الخادم (في حالة إضافة موقع الخادم، ستستخدم الأمر ssh):

$ git clone https://www.github.com/username/repo-name

اِعرض المستودع البعيد لدليل غيت الحالي لديك:

$ git remote

للحصول على خرج مطوَّل verbose، استخدم الراية v- على النحو التالي:

$ git remote -v

أضِف فرع غيت الأولي primary، ,الذي قد يكون عنوان url، أو مُستضافًا على خادم (في هذه الحالة اتصل بالخادم باستخدام الأمر ssh):

$ git remote add upstream https://www.github.com/username/repo-name

التحضير للإدراج

عندما تعدل ملفًا وتضع علامةً عليه للانتقال إلى الإيداع التالي، فإنه يُعد ملفًا مُدرجًا staged. يمكن التحقق من حالة مستودع غيت لديك، بحيث يتضمن الملفات المضافة المُدرجة وغير المُدرجة على النحو التالي:

$ git status

استخدم الأمر add لإدراج الملفات المُعدَّلة، إذ يمكنك تنفيذه عدّة مرات قبل ملف الإيداع؛ وإذا أجريت تعديلات لاحقة تريد إدراجها في الإيداع التالي، عليك تنفيذ الأمر add مجددًا. كما يمكنك تحديد ملفٍ معين في الأمر add على النحو التالي:

$ git add my_script.py

ويمكنك باستخدام النقطة . إضافة جميع الملفات الموجودة في الدليل الحالي، وهذا يشمل الملفات التي تبدأ بالنقطة .:

$ git add .

إذا أردت إضافة جميع الملفات الموجودة في الدليل الحالي إضافةً إلى الملفات الموجودة في الدلائل الفرعية، فيمكنك استخدام الراية all- أو A-:

$ git add -A

يمكنك إزالة ملف من مرحلة الإدراج مع الاحتفاظ بالتعديلات ضمن دليل العمل الخاص بك باستخدام الأمر reset:

$ git reset my_script.py

الإيداع

بمجرد انتهائك من إدراج التحديثات التي أجريتها، فأنت جاهزٌ لإضافة إيداع، والذي سيسجِّل التعديلات التي أجريتها على المستودع. لإيداع ملفاتٍ مُدرجة، نفِّذ الأمر commit وأضف رسالة إيداعٍ ذات مغزًى حتى تتمكن من متابع الإيداعات:

$ git commit -m "Commit message"

يمكنك اختصار جميع الملفات التي تتابعها من خلال إضافة إيداعٍ لها في خطوةٍ واحدة:

$ git commit -am "Commit message"

يمكنك تعديل رسالة الإيداع بإضافة الراية amend--:

$ git commit --amend -m "New commit message"

الفروع

الفرع في غيت هو مؤشرٌ متنقلٌ لأحد الإيداعات في المستودع، ويتيح لك عزل العمل وإدارة تطوير الخصائص وعمليات الدمج. إذا أردت معرفة المزيد عن الفروع اقرأ توثيق غيت.

اعرض جميع الفروع الحالية بتنفيذ الأمر branch، إذ ستظهر علامة النجمة (*) بجوار فرعك النشط حاليًا:

$ git branch

أنشئ فرعًا جديدًا. ستبقى في فرعك النشط حاليًا حتى تبدّل إلى الفرع الجديد:

$ git branch new-branch

بدِّل إلى أيّ فرعٍ موجود، وتحقق منه في دليل العمل الحالي لديك:

$ git checkout another-branch

يمكنك دمج عمليتي إنشاء فرع جديد والتحقق منه باستخدام الراية b- على النحو التالي:

$ git checkout -b new-branch

أعِد تسمية فرعك على النحو التالي:

$ git branch -m current-branch-name new-branch-name

ادمج سجلات الفرع المحدد مع الفرع الذي تعمل فيه حاليًا:

$ git merge branch-name

بإمكانك إلغاء عملية الدمج في حال وجود تعارضات على النحو التالي:

$ git merge --abort

كما يمكنك تحديد إيداعٍ معيّن لدمجه باستخدام الأمر cherry-pick وكتابة سلسلة المحارف التي تشير إلى ذلك الإيداع:

$ git cherry-pick f7649d0

عندما تدمج فرعًا ولم تعد بحاجة إليه، يمكنك حذفه على النحو التالي:

$ git branch -d branch-name

إذا لم تدمج فرعًا مع الفرع الرئيسي، لكنك متأكد من رغبتك في حذفه، فيمكنك فرض حذف الفرع:

$ git branch -D branch-name

المشاركة والتحديث

يمكنك استخدام الأمر fetch لتنزيل التعديلات من مستودع آخر، مثل المستودع الأوّلي البعيد على النحو التالي:

$ git fetch upstream

يُستخدم الأمر التالي لدمج الإيداعات التي جلبناها fetched. تذكر أن بعض المستودعات قد تستخدِم master بدلاً من main:

$ git merge upstream/main

ومن أجل دفع أو نقل إيداعات الفرع المحلي إلى فرع المستودع البعيد، استخدم الأمر التالي:

$ git push origin main

ولجلب ودمج أية إيداعات من فرع المتابعة tracking البعيد:

$ git pull

الفحص Inspecting

اِعرض سجل الإيداع للفرع النشط حاليًا:

$ git log

اِعرض الإيداعات التي عدَّلت ملفًا معينًا، إذ يتبَع هذا العرض الملف بغض النظر عن إعادة التسمية:

$ git log --follow my_script.py

اعرض الإيداعات الموجودة في فرعٍ محدد وليست موجودة في الفرع الآخر، إذ سيعرض الأمر التالي الإيداعات في الفرع a-branch وغير الموجودة في الفرع b-branch:

$ git log a-branch .. b-branch

اطلع على السجلات المرجعية reflog لتعرف آخر مرةٍ حُدِّث فيها أحدث إيداعٍ في الفروع والمراجع الأخرى ضمن المستودع:

$ git reflog

اعرض أي كائنٍ في غيت من خلال سلسلة محارف إيداعه أو القيمة المعمَّاة Hash بصياغةٍ قابلة للقراءة على النحو التالي:

$ git show de754f5

عرض التغييرات

يعرض الأمرgit diff الفروقات بين الإيداعات والفروع وغيرها. يمكنك الاطلاع على المزيد عنها من خلال قراءة توثيق غيت. يُستخدم الأمر التالي لموازنة الملفات المُعدّلة الموجودة في مرحلة الإدراج:

$ git diff --staged

اعرض التغييرات على ما هو موجود في الفرع a-branch وغير الموجود في الفرع b-branch على النحو التالي:

$ git diff a-branch .. b-branch

اِعرض التغييرات بين إيداعين محدّدين على النحو التالي:

$ git diff 61ce3e6 .. e221d9c

تتبع مسار التغييرات من خلال حذف ملف من مشروعك ونظِّم هذا الحذف لإضافته إلى إيداع على النحو التالي:

$ git rm file

أو غيِّر مسار ملفٍ موجود، ثم نظِّم الانتقال:

$ git mv existing-path new-path

تحقَّق من سجل الإيداع لتعرف ما إذا نُقلت أية مسارات:

$ git log --stat -M

الإخفاء Stashing

ستجد أحيانًا نفسك بعد إجراء بعض التعديلات على جزءٍ من الشيفرة البرمجية وقبل الانتهاء مضطرًا إلى بدء العمل على أمرٍ آخر، وأنت لست مستعدًا لاعتماد التعديلات التي أجريتها حتى الآن، لكنك لا تريد أن يضيع عملك. في هذه الحالة، سيتيح لك الأمر git stash حفظ تعديلاتك المحلية في مكان ما والعودة مرةً أخرى إلى دليل العمل الذي يتوافق مع أحدث إيداع HEAD وتدعى هذه العملية بعملية الإخفاء أو الادخار stashing. لإخفاء عملك الحالي:

$ git stash

اطلِّع على ما اخفيته حاليًا:

$ git stash list

تُسمى الأعمال المُخبأة كما يلي: {stash@{0، و {stash@{1 وهكذا. لعرض معلومات عن عملٍ مُخبأ stash معين:

$ git stash show stash@{0}

أضف apply لاستخراج الملفات الموجودة في عملٍ مُخبأ حالي منه مع الاحتفاظ به:

$ git stash apply stash@{0}

إذا أردت استخراج الملفات من العمل المُخبأ ولم تعد بحاجته، أضف pop:

$ git stash pop stash@{0}

إذا لم تعد بحاجة الملفات المحفوظة في ملفٍ مُخبأ معين، أضف drop لإلغائه:

$ git stash drop stash@{0}

إذا كان لديك عدة أعمال مُدخرة محفوظة لم تعد تحتاج إلى استخدام أيٍّ منها، أضِف clear لإزالتها:

$ git stash clear

تجاهل الملفات

إذا أردت الاحتفاظ بالملفات في دليل غيت المحلي لديك لكنك لا تريد إضافة إيداعٍ لهم إلى المشروع، أضِف هذه الملفات إلى ملف "gitignore." لديك حتى لا تتسبب بأية تعارضات.

استخدم محرر نصوص مثل نانو، لإضافة الملفات إلى ملف "gitignore." على النحو التالي:

$ nano .gitignore

إذا أردت أن تجد نماذج لملفات "gitignore."، اطلع على مستودع قالب gitignore. لموقع غيت هَب GitHub.

إعادة تأسيس الفروع

تتيح لنا عملية إعادة التأسيس Rebase نقل الفروع من خلال تغيير الإيداع المبنية عليه، كما تتيح لك إزالة squash الإيداعات أو إعادة صياغتها.

يمكنك بدء عملية إعادة التأسيس، إما باستدعاء عدد الإيداعات التي أنشأتها وتريد إعادة تأسيسها (العدد هو 5 في مثالنا التالي):

$ git rebase -i HEAD~5

أو يمكنك إعادة التأسيس بالاعتماد على سلسلة محارف إيداع معين أو القيمة المُعمَّاة Hash:

$ git rebase -i 074a4e5

بعد إزالة أو إعادة صياغة الإيداعات، يمكنك متابعة عملية إعادة تأسيس فرعك على أحدث إصدار من الشيفرة البرمجية الأولية للمشروع. تذكر أن بعض المستودعات قد تستخدم master بدلًا من main:

$ git rebase upstream/main

لتتعلم المزيد عن إعادة التأسيس والتحديث اقرأ كيف تعيد تأسيس طلب سحب وتحدِّثه الذي يمكن تطبيقه على أي نوع إيداعٍ تريده.

التراجع وإعادة الضبط

يمكنك التراجع عن التعديلات التي أجريتها على إيداعٍ معين باستخدام الأمر revert، إذ يجب أن تكون شجرة العمل نظيفةً حتى يتحقق ذلك:

$ git revert 1fc6665

تحتاج أحيانًا إلى إعادة ضبط دليل شجرة العمل حتى بعد عملية إعادة التأسيس، إذ يمكنك باستخدام الأمر التالي إعادة الضبط إلى إيداعٍ معين، وحذف كافة التعديلات:

$ git reset --hard 1fc6665

لفرض دفع push أحدث إيداعٍ معروف وغير متعارض لديك إلى المستودع الأصلي، عليك استخدام force-- على النحو التالي:

$ git push --force origin main
اقتباس

تحذير: تكون عملية فرض الدفع إلى الفرع الرئيسي main (الأساسي master أحيانًا) غالبًا غير محبَّذة ما لم يكن لديك سببٌ وجيهٌ فعلًا لتنفيذها؛ لذلك استخدمها بحذر عند العمل على مستودعاتك الخاصة، واعمل على تجنُّبها عندما تشارك في عملٍ ما.

لإزالة الملفات والدلائل الفرعية غير المتتبعة من دليل غيت للحصول على فرع عملٍ نظيف، استخدم الأمر git clean:

$ git clean -f -d

إذا أردت تعديل مستودعك المحلي ليبدو مثل الفرع الرئيسي الأولي الحالي (أي عندما توجد كثيرٌ من التعارضات)، يمكنك تنفيذ استعادة الإعدادات الأصلية hard reset على النحو التالي:

$ git reset --hard upstream/main

ملاحظة: سيجعل تنفيذ هذا الأمر مستودعك المحلي يبدو تمامًا مثل الفرع الأولي، وستُتلف أية إيداعات أنشأتها ولم تسحبها إلى الفرع الأولي.

الخاتمة

يتناول هذا الدليل بعض أكثر أوامر غيت شيوعًا، والتي قد تستخدمها عند إدارة المستودعات والمشاركة في البرامج.

توجد العديد من الأوامر التي قد تجدها مفيدةً لعملك على غيت. لمعرفة المزيد حول جميع الخيارات المتاحة لك، يمكنك تنفيذ الأمر التالي للحصول على معلومات مفيدة:

$ git --help

كما يمكنك قراءة المزيد حول غيت والاطلاع على ملفات توثيق غيت في قسم Git في أكاديمية حسوب وإن واجهتك أي مشكلة فأضف سؤالك في قسم الأسئلة والأجوبة لطلب المساعدة.

ترجمة -وبتصرف- للمقال How To Use Git: A Reference Guide لصاحبته Lisa Tagliaferri.

اقرأ أيضًا


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

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

لا توجد أية تعليقات بعد



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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.


×
×
  • أضف...