ه هناك العديد من البرامج المختلفة التى ثستخدم لتطبيق تماقا كالعلاقة بين Word Mircrosoft والبراصج الأخرى ما هو control Version؟ أداة ثدير التغيرات المتعلقة بالأكواد والملفات داخل المشروع ه أداة ثتيح لك تخزين نسخة من الملفات علي جهازك الشخصي أو على الاداة المستخدمة لتطبيق ال version أداة تجعلك تتبع جميع التعديلات بالتوقيتات الزمنية لكل تعديل control مثل Git cit هو نظام تحكم في الإصدارات يستخدم على نطاق واسع في تطوير البرمجيات. في مشروع البرمجيات وإدارتها بكفاءة، بالإضافة إلى القدرة على العمل بشكل تعاوني مع فرق التطوير version control يوجد العديد من البرامج المختلفة التي تستخدم لتطبيق JI control version مثل: -CVS -SVN - Perf ما هو الفرق بين Github vs. Git؟ ال Git هو عبارة عن control version يدير التغيرات المتعلقة بالأكواد والملفات داخل المشروع ال Github برنامج لادارة وتنظيم الملفات Repos) (Git علي . Cloud ويسمح بمشاركة المشاريع وتعديلها من جهاز ما ا هي ال init git ال init git هي أمر يستخدم في Git لإنشاء مستودع Repository) جديد. يتم استخدام هذا الأمر عندما تحتاج إلى لتخزين جميع بيانات Git المتعلقة بمستودعك (Repository) عثل تاريخ المشروع وسجلات الإصدارات وغيرها من المعلومات يتم استخدام هذا الأمر عندما تحتاج إلى إنشاء مستودع (Repository) جديد لمشروعك الحالي أو لبدء مشروع جديد، عندما تقوم بتشغيل init git يقوم cit بإنشاء Repository مثل تاريخ المشروع وسجلات الإصدارات وغيرها من المعلومات 9it add والتي. تسمح لك بتحديد الملفات التي سيتم تضمينها في ال commit القادم م لإضافة ملفات جديدة يمكنك استخدام add git متبوغا بأسماء الملفات على سبيل المثال txt 9it commit يستخدم هذا الأمر لحفظ التغييرات التي تمت إضافتها إلى منطقة الانتظار area) (staging وتطبيقها على لإنشاء commit جديد يمكنك استخدام commit git متبوغا برسالة commit وصفا للتغييرات التي قمت بها. مما يسمح لك بالعودة إليها في أي وقت لتحديث المشروع أو استعادة نسخة سابقة منه log ٠ هي أمر في cit يستخدم لعرض سجل التزامات (Commits) المستودع (Repository) يعرض هذا الأمر قائمة بكل الالتزامات (Commits) الموجودة في الفرع الحالي للمستودع (Repository) ويشمل كل التزام (Commit) معلومات مثل الشفرة التعريفية للالتزام hash) (commit والمؤلف والتاريخ والرسالة التوضيحية للالتزام (Commit) بشكل عام log cit يمكن استخدامه لفهم تاريخ المستودع وتحليل تطوراته بشكل أفضل، لتحديد مكان الأخطاء ومراجعتها gitignore) تجاهلها عند تتبع تغييرات المشروع باستخدام itت ٩ عندما تنشئ مستودع cit جديذا، ستضع ملفاتك ومجلداتك داخل مجلد العمل ، وستقوم بتتبع تغييرات هذه ومع ذلك قد يكون هناك ملفات أو مجلدات غير ضرورية أو غير مرغوب فيها مثل ملفات التكوين أو ملفات تضم معلومات حساسة أو ملفات مؤقتة. يمكن استخدام ملف . هذه الملفات ، حتى لديتم تتبعها ضمن سجلات التاريخ والإصدارات Branches في ال Git ثعرف الـ Branches" بأنها تسمح لك تطوب مسارات مختلفة للتغييرات على مستودع cit الخاص بك عند اا إنشاء فرع (Branch) جديد يمكنك تطوير أجزاء أو إجراء التغييرات دون التأثيرعلى الأجزاء الأخرى التي تعمل عليها فرق العمل الأخرى في نفس المشروع أي أنك سوف تأخذ الرئيسي بأي تعديل تقوم به وبعد ان تتأكد ان ما قمت بإضافته أو تعديله مظبوط تستطيع أن تقوم باضافته اللمشروع الرئيسي Git Branch هو أصر في Cit يستخدم لإنشاء فروع (Branches) جديدة في مستودع Git الخاص بك عندما تنشئ فرغا (Branch) جديذا يتم إنشاء نسخة من كل شيء موجود في الفرع الحالي، بما في ذلك جميع الملفات وسجل التاريخ الخاص بالمستودع، لإنشاء فرع جديد يمكنك استخدام الأمر branch git متبوغا ب اسم الفرع الجديد على سبيل المثال: git branch new-feature Git Checkout عند تشغيل هذا الأمر مع اسم الفرع، يتم التحويل إلى هذا الفرع ويطبح الفرع النشط الذي يتم العمل عليه للتبديل إلى فرع معين، git checkout new-feature دون التأثير على الفرع الرئيسي أو أي فروع أخرى ال Revert Git لا يحذف أي تعديلات سابقة بل ينشئ الالتزام (commit) الجديد الذي يعكس حالة المستودع قبل إجراء التعديلات التي تم إجراؤها في الالتزام (commit) المحدد بمعنى آخر يتم إنشاء الالتزام الجديد الذي يحتوي على تعديلات تعكس الحالة السابقة للمستودع Git Switch يقوم بوظيفة كلد من branch git و checkout git معا عند تشغيل هذا الأمر مع اسم الفرع أو معرف الالتزام commit يتم التحويل إلى هذا الفرع أو الالتزام (commit) ويصبح الفرع أو الالتزام (commit) النشط الذي يتم العمل عليه للتبديل إلى فرع أو التزام (commit) معين، git switch -c new-feature git branch -d branchname يستخدم أمر branchname" -d branch "git لحذف فرع Git من مستودع itت مستودع cit الحالي، دون قصد فقد تفقد العمل الذي تم إنجازه في ذلك الفرع git merge من فرع إلى آخر التغييرات من الفرع الأول والفرع الثاني يتم استخدام الأمر merge" "git بالشكل التالي حيث أن "branchname" هو اسم الفرع الذي تريد دمجه بالفرع الحالي، ومن المهم التأكد من التحديث االانتقال( إلى الفع الرئيسي قبل استخدام هذا الأمر وذلك باستخدام الأمر git checkout main-branch fast-forward merge الرئيسي دون إنشاء نقطة تفع جديدة. يتم استخدام هذا النوع من الدمج عندما يتم العمل على فرع فرعي بشكل منفرد وبدون أي تداخلات عع الفرع الرئيسي the 3-way merge تغييرات في ال main في هذ الحالة يقوم cit بإنشاء نقطة تفرع جديدة commit) (merge ويحاول دمج الفيان ال+٠ الفرعين Squash Merge Merge في itت فيجب عليك التأكد من الحفاظ على تاريح المشروع عرتنا ومنظفا وذلك باستخدام رسائل الالتزامات قالبت الصحيحة ووصف دقيق للتعديلات المدمجة يعڌ conflicts Merge iو دمج التعارظات جزءا من عملية الدمج (merge) في Git ج الجزء في فرعين مختلفين بطريقة عختلفة من وتحدث عملية conflicts Merge عندما نتم تعديل نفس الملف قبل أكثر من مستخدم في نفس الوقت، وهذا يؤدي إلى وجود تعارظات بين التعديلات المختلفة التي يجب حلها يمكن حل التعارضات بطرق مختلفة مثل دمج التعديلات المختلفة بشكل يدوي، أو اختيار إحدى التعديلات على أو استخدام آدوات تلقائية لدمج التعدلات ويعتمد الخيار المناسب على طبيعة التعارض وحجم وعند الانتهاء من حل التعارضات، يتم حفظ النسخة الجديدة cit Merge يحافظ على تاريخ المشروع الخطي (Linear) مما يسهل تتبع التغييرات وفهم عملية التطوير لايقوم بتغيير الفرع (Branch) الأصلي أو تاريخ الالتزامات (Commits) الأصلي العيوب يمكن أن يؤدي إلى تاريخ التزامات (Commits) فوضوي ومربك عند دمج فروع متعددة ه قد يتطلب وقتا وجهذا إضافيا لحل تضاربات الدمج Cit Rebase المميزات يوفر تاريخ التزامات (Commits) أكثر نظافة وتنظيقا عن طريق دمج التغييرات من فرع واحد في آخر بدون إنشاء علامات دمج غير ضرورية ٠ يتيح عملية تطوير أكثر تيسيزا وخطية ٠ يقلل من عدد تضاربات الدمج التي يتعين حلها حيث يتم دمج التغييرات في تاريخ خطي