الأهداف التربوية:
git merge و git rebase.في نهاية هذا العمل، ستكون قادراً على:
git merge و git rebase لدمج تعديلات الفروع.merge و rebase.أنشئ مجلد عمل لهذا التمرين:
mkdir git-evaluation-1
cd git-evaluation-1
git initلقطة شاشة: التقط لقطة تُظهر تهيئة المستودع (git init).
إنشاء الملف الأولي
أنشئ ملفاً اسمه fichier1.txt (الملف الأصلي) وأضف إيداع أساس على الفرع الرئيسي main:
echo "Contenu initial dans fichier1" > fichier1.txt
git add fichier1.txt
git commit -m "Initialisation du projet avec fichier1.txt"أعد تسمية الفرع الرئيسي إلى main (إن لزم):
git branch -M mainلقطة شاشة: أظهر إضافة الملف وأول إيداع.
أنشئ الفرعين branche1 و branche2 انطلاقاً من main:
branche1:
git checkout -b branche1main وأنشئ branche2:
git checkout main
git checkout -b branche2إنشاء فروع العمل:
branche-rebase من branche1:
git checkout branche1
git checkout -b branche-rebasebranche-merge من branche2:
git checkout branche2
git checkout -b branche-mergeلقطة شاشة: أظهر إنشاء الفروع بالأمر git branch.
branche-rebase و branche-mergeملاحظة: سنستخدم ملفات مختلفة (
fichier-2-rebase.txtوfichier-2-merge.txt) ونجري التعديلات نفسها لمقارنة آثارmergeوrebase.
العمل على branche-rebase:
الإيداع الأول:
git checkout branche-rebase
echo "Modification 1 dans branche-rebase" > fichier-2-rebase.txt
git add fichier-2-rebase.txt
git commit -m "Ajout de fichier-2-rebase.txt avec modification 1"الإيداع الثاني:
echo "Modification 2 dans branche-rebase" >> fichier-2-rebase.txt
git add fichier-2-rebase.txt
git commit -m "Ajout de modification 2 dans fichier-2-rebase.txt"الإيداع الثالث:
echo "Modification 3 dans branche-rebase" >> fichier-2-rebase.txt
git add fichier-2-rebase.txt
git commit -m "Ajout de modification 3 dans fichier-2-rebase.txt"العمل على branche-merge:
الإيداع الأول:
git checkout branche-merge
echo "Modification 1 dans branche-merge" > fichier-2-merge.txt
git add fichier-2-merge.txt
git commit -m "Ajout de fichier-2-merge.txt avec modification 1"الإيداع الثاني:
echo "Modification 2 dans branche-merge" >> fichier-2-merge.txt
git add fichier-2-merge.txt
git commit -m "Ajout de modification 2 dans fichier-2-merge.txt"الإيداع الثالث:
echo "Modification 3 dans branche-merge" >> fichier-2-merge.txt
git add fichier-2-merge.txt
git commit -m "Ajout de modification 3 dans fichier-2-merge.txt"لقطة شاشة: أظهر الإيداعات المنجزة في كل فرع بـ git log.
merge و rebaseإعادة أساس branche-rebase في branche1:
انتقل إلى branche1:
git checkout branche1أعد أساس branche-rebase في branche1:
git rebase branche-rebaseلقطة شاشة: استخدم git log --oneline --graph --all لإظهار السجل الخطّي الذي أنشأته إعادة الأساس.
دمج branche-merge في branche2:
انتقل إلى branche2:
git checkout branche2ادمج branche-merge في branche2:
git merge branche-merge -m "Fusion de branche-merge dans branche2"لقطة شاشة: استخدم git log --oneline --graph --all لإظهار السجل مع إيداع الدمج.
مقارنة السجلات:
branche1 (مع rebase) وسجل branche2 (مع merge)؟حجج لكل طريقة:
rebase لدمج التعديلات؟merge أكثر فائدة؟سيناريوهات تطبيق:
merge تعارضات في السجل، وكيف يمكن لـ rebase حل هذه المشكلة.rebase صعوبات تتبّع في مشروع تعاوني.لتسليم هذا العمل العملي: