مدخل الى عالم Git و GitHub الاساسي في عالم البرمجة الحديثة والتشارك عبر المصدر المفتوح.
- مهارات اساسية في استخدام الحاسوب
- معرفة وتجربة في أي لغة برمجية
- تعرف على نظام Git ولماذا هي المستخدمة بشكل واسع في مجتمعات المصدر المفتوح ؟
- تعرف على أهم اوامر Git اللي بتساعدك لتدير ملفاتك بحرفية
- اكتسب مهارات ادارة ملفاتك البرمجية والنصية بحرفية وبشكل تطبيقي عبر مشروع جهزته خصيصا للمشتركين في هذه الدورة ، لتطبيق كافة الدروس على هذا المشروع.
- معرفة وتطبيق عملي للعمل ضمن فريق والمساهمة في مجتمع المصدر المفتوح
- ما هو Version Control System . ولماذا Git بالتحديد ؟
- تعرف على أهم اوامر أداة Command like : Unix-like Commands
- تعلم كيف تدير مشروعك على GitHub
- استخدام Forks عبر GitHub
الحلقة الاولى : المقدمة :
الداعي الاساسي لنظام ادارة النسخ هو تسهيل وتوفير الوقت والجهد واعطاء الثقة للمستخدم . مثلما رأينا في هذه الحلقة أن الطرق الاندفاعية والمتحفظة فيها الكثير من المشاكل ، ولا توجد فيها أية مرونة.
نظام إدارة النسخ ، من أساسياته هو وجود التاريخ للمشروع. بحيث لا تخسر أي نسخة كانت تعمل في السابق.
وفكرة الأفرع التي تعطيك الكثير والكثير من المرونة في تطوير وتكبير مشروعك البرمجي.
© All rights reserved.
Most of explainer images shown in the video are credited to atlassian git tutorial.
أداة Git مثلها مثل أي أداة قوية ، فهي تحتاج الى تعلم وتطبيق مستمر للتمكن من مزاياها. بعد انتهائك من تعلمها واكتسابك لمهارات استخدامها ، فهذا يعطيك الكثير من القوة والانجاز البرمجي والثقة والجرأة فيما بعد.
الأوامر لإعدادات نظام Git لديك :
git config --global user.name "[name]"
git config --global user.email "[email address]"
git config --global color.ui auto
** فقط في حال لم تضيف Default Editor لنظام Git : اطلق الأمر التالي :
حالة Notepad++ :
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -w -n"
حالة Atom :
git config --global core.editor "atom --wait"
حالة Sublime :
git config --global core.editor "subl -n -w"
git config --global core.editor "'c:/program files (x86)/sublime text 3/sublimetext.exe' -w"
git config --global core.editor "'c:/program files/sublime text 3/sublimetext.exe' -w"
خيار global هو لتطبيق هذه الاعدادات على أية مشاريع باستخدام أداة Git على جهازك.
للتحقق من وجود الاعدادات هذه اطلق أمر :
git config --global --list
لتبدأ باستخدام أداة Git على مشروعك اذهب اليه وافتح نافذة Git Bash ، واطلق الأمر التالي :
git init
بعدها أضف جميع ملفاتك الى Staging Index بأمر :
git add .
ومن ثم سجلها بالتاريخ بأمر :
git commit -m “My First Commit”
لرؤية تاريخ المشروع اطلق أمر :
git log
رابط المادة التعليمية :
https://github.com/HamzaHajeir/git-training
انسخها مع كامل تاريخها باستخدام أمر git clone :
git clone https://github.com/HamzaHajeir/git-training.git
لمعرفة التعديلات في الملفات التي تشذ عن التاريخ ، اطلق أمر
git status
التعديلات المضافة الى Staging index عبر اضافة خيار --staged
git status --staged
لرؤية ما الفرق بين نسختين في التاريخ للمشروع ، استخدم امر :
git diff COMHASH1 COMHASH2
- COMHASH هو الرمز المصاحب للـcommit .
لرؤية ما تم تعديله بنقطة ما بالتاريخ ، استخدم أمر :
git show COMHASH
خيارات استخدام git log :
اعرض آخر # نقاط : -n#
اعرض التعديلات في كل نقطة احصائيا : --stat
اعرض النقاط بالتاريخ زمنيا : --since= --until=
اعرض النقاط حسب جزء من الرسالة : --grep
اعرض النقاط المنتجة عبر اسم العضو المشارك : --author
أطلق الامر التالي لكي تربط بين حاسوبك الشخصي وبين المستودع التي أنشأته في GitHub :
git remote add origin %GIT_REPO_URL%
ارفع تعديلاتك الى المستودع الخارجي عبر أمر
git push origin master
git push يتطلب منك مدخلين :
- Remote : واللي هو المستودع الخارجي ، سميناه origin
- Branch : الفرع اللي بدنا نرفعه ، في هذا المثال هو master
اسحب التعديلات من المستودع الخارجي عبر أمر :
git pull origin master
git push يتطلب منك مدخلين :
- Remote : واللي هو المستودع الخارجي ، سميناه origin
- Branch : الفرع اللي بدنا نرفعه ، في هذا المثال هو master
Fork
هو أداة متمركزة في GitHub ، هدفها انشاء نسخة خاصة لك تستطيع المساهمة فيها والتعديل عليها ونشرها اونلاين بدون اختراق رخصة المصدر المفتوح ، والمساهمة فيه بشكل فعلي.
وهو ينسخ المشروع كاملا مع تاريخه الى حسابك في GitHub. وبالتالي لك Access للتعديل عليه.
تستطيع طلب سحب لتعديلاتك الى المستودع الأساسي عبر اداة اسمها Pull Request.

Thanks a lot. Will explanation for basic Git practices


شرح رائع ابدعت مهندس حمزة كل الشكر
