git - الدّليل البسيط

مجرّد دليل بسيط لمباشرة العمل بـ Git بدون وجع الرأس ;)

Tweet

تأليف Roger Dudler
ترجمه إلى العربية وليد زيوش
يُرجى التبليغ عن الأخطاء على github

التّثبيت

حمّل Git لنظام OSX

حمّل Git لنظام Windows

حمّل Git لنظام لينكس

أنشئ مستودعًا جديدًا

أنشئ مجلدًا جديدًا، ادخل إليه ثم قم بتنفيذ الأمر
git init
لإنشاء مستودع Git جديد.

استنساخ مستودع موجود

أنشئ نسخة عمل من مستودع محلي عبر تنفيذ الأمر التالي
git clone /المسار/إلى/المستودع
في حال تواجد المستودع على خادوم بعيد، فعدّل على الأمر ليُصبح على الشكل التالي:
git clone المسار/إلى/المستودع/:[email protected]_المستخدم

سير العمل

مُستودعك المحلّي عبارة عن ثلاث "شجرات" يعتني بها Git. الشجرة الأولى هي الـ Working Directory أي مجلّد العمل والتي تحتوي الملفات الحالية. أما الثانية فهي الـ Index أي الفهرس، والتي تلعب دور منطقة الإدراج (staging area) والأخيرة هي الـ HEAD -أو الرأس- والتي يشير إلى آخر إيداع "commit" قمت به.

الإضافة والإيداع

يُمكنك إقرار التغيّرات (إضافتها إلى الفهرس Index) بأحد الأمرين التاليين:
<اسم_الملف> git add
git add *
هذه أوّل خطوة قاعدية لدى استخدامك لـ Git. لإيداع هذه التغيّرات استعمل الأمر
git commit -m "وصف الإيداع"
والذي يقوم بإيداع الملف إلى الـ HEAD، لكن دون أن يدفعه إلى الخادوم البعيد.

دفع التغيّرات

التغيّرات التي أحدثتها متواجدة على مستوى الرأس HEAD الخاص بالنسخة المحلية للمستودع. لإرسال هذه التغيّرات إلى المستودع الموجود على الخادوم، نفذّ
git push origin master
غيّر master إلى اسم الفرع الذي تريد دفع التغيّرات إليه.

إذا لم تكن قد استنسخت مستودعًا موجودًا من قبل وتريد وَصْل مستودعك المحلي بخادوم بعيد فعليك إضافته بالأمر التالي:
git remote add origin <الخادم>
يمكنك الآن دفع التغيّرات إلى الخادوم البعيد الذي عيّنته.

التفريع

تُستعمَل الفروع لتطوير وظائف أو ميزات للمشروع في معزل عن بعضها البعض. الـ master -أو الرئيسي- هو الفرع "الافتراضي" الذي يتم تعيينه عند إنشائك للمستودع. استعمل فروعا أخرى لدى التطوير، ثم حين تفرغ من الأمر، قم بدمج التغيّرات الخاصة بها مع الفرع الرئيسي master.

أنشئ فرعًا جديدا باسم "feature_x" ثم انتقل للعمل عليه بتنفيذ:
git checkout -b feature_x
للرجوع إلى master
git checkout master
لحذف الفرع (بعد دمجه مثلا) نفّذ:
git branch -d feature_x
لا يمكن لغيرك الوصول إلى الفروع التي قمت بإنشائها ما لم تقم بدفعها إلى مستودع على الخادوم عبر:
git push origin <اسم_الفرع>

الدمج والتحديث

لتحديث مستودعك المحلي والحصول على آخر ما تم إيداعه، نفّذ
git pull
في مجلد العمل لكي يتم جلب ودمج التغيرات من الخادوم البعيد.
أما لدمج فرع مع الفرع الذي تتواجد فيه حاليا (كالـ master مثلا)، نفّذ:
git merge <اسم_الفرع>
في كلتا الحالتين، سيحاول git أن يدمج التغيّرات تلقائيا. للأسف لا ينجح الأمر دائما حيث يُحتمل أن تنتج عنه تضاربات أو conflicts. وتقع مهمة دمج هذه التضاربات يدويا على عاتقك، وذلك عبر تحرير الملفات التي يشير عليها git. بعد حلِّ التضاربات، يتوجب عليك تعليما كـ "مُدمجة" أو merged وذلك بتنفيذ:
git add <اسم_الملف>
بإمكانك معاينة التغيّرات قبل دمجها باستخدام الأمر:
git diff <الفرع_المستهدف> <الفرع_المصدر>

(tagging) التوسيم

من المُحبذ ومن المتعارف عليه إنشاء أوسمة tags لتعليم إصدارات البرامج، وهو أمر مُتعارف عليه ومُستخدم أيضا مع نظام SVN. يمكنك إنشاء وسم جديد يحمل الاسم 1.0.0 عبر تنفيذ
git tag 1.0.0 1b2e1d63ff
حيث تُمثل 1b2e1d63ff أول عشرة محارف من رقم تعريف الإيداع الذي تريد توسيمه. يمكنك الحصول على هذا المُعرّف عبر تنفيذ
git log
يمكنك استعمال عدد أقل من المحارف في المُعرف، لكن يجب عليه أن يكون فريدا.

استبدال التغيّرات المحلية

في حال ما إذا ارتكبت خطأ(طبعا هذا لن يحدث ;)) يمكنك استبدال التغيّرات المحلية بالأمر
git checkout -- <اسم_الملف>
والذي يقوم باستبدال التغيّرات في شجرة العمل بأحدث محتوى في الـ HEAD. ستتم المحافظة على جميع التغيّرات التي تم إضافتها مسبقا إلى الفهرس Index، إضافة إلى الملفات الجديدة.

أما إذا كنت تريد التخلي عن جميع الإيداعات وتغييراتك المحلية، وترغب عوض ذلك في جلب أحدث تاريخ من الخادوم والتأشير على فرع الـ master فيه، فقم بتنفيذ
git fetch origin
git reset --hard origin/master

تلميحات مفيدة

واجهة رسومية مدمجة لـ git
gitk
تلوين مخرجات git
git config color.ui true
عرض كل إيداع في سطر واحد في السّجل (log)
git config format.pretty oneline
جعل عملية الإضافة تفاعلية
git add -i

روابط ومصادر

واجهات رسومية

مراجع

التعليقات

→ عودة إلى
arabicgit.com