هذه هي الطريقة التي تشارك بها عملك على مستودع git البعيد



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

يضيف عملك قيمة أكثر عند نشره ومشاركته مع العالم (أو فريقك) !!!

ابدء

اذهب ، كما تعلم ، هي أداة الإصدار الأكثر شيوعًا المستخدمة اليوم متجر ، المسار و الإصدار أي نوع من البيانات .
بعض الميزات الرئيسية لـ git هي سرعة ، وزعت طبيعة، الأمان ، غير مؤلم التفرع والدمج مع التعاونيه العمل بين عدة مساهمين.

لنبدأ مناقشتنا من هنا ، دعنا نركز على كيف يساعدك git على ذلك يتعاون ومشاركة عملك مع الزملاء بحيث يمكن للجميع العمل على نفس الكود في وقت واحد دون إفساد بيانات بعضهم البعض.
هذا حيث مفهوم مستودعات بعيدة تعال إلى الصورة.
أفترض أنك أتقنت فن منك عمل اخراجي (نظام الملفات) إلى منطقة التدريج وأخيراً إلزامك به المستودع المحلي (قاعدة البيانات).

هذا يلهمنا لدفع بياناتنا إلى المستوى التالي 'الريبو البعيد' لنشرها على مستودع بعيد.

أليست بياناتي مخزنة بالفعل في قاعدة بيانات git؟

نعم إنه كذلك! ومع ذلك ، كما هو موضح في الرسم البياني أدناه ، لا تزال بياناتك موجودة في قاعدة البيانات المحلية بعدك ارتكب ولم يتم مشاركتها مع زملائك بعد.
4 طبقات العمارة
تملأ هذه المقالة الفجوة بين التقاط بياناتنا من ملف المستودع المحلي وأخذها إلى الطبقة التالية المسماة مستودع بعيد .





ما هو المستودع البعيد

قاعدة بيانات للمعلومات التي تم جمعها مخزنة في مكان يمكن أن يكون مشترك مع زملائك في الفريق من خلال منحهم التمكن من .
يتم استضافته بشكل مثالي على ملف غيم أو على الخادم (محلي أو بعيد) على الإنترنت أو شبكتك المحلية.
يشبه المستودع البعيد مستودع git المحلي الخاص بك ، باستثناء أنه يتم الإعلان عنه عمومًا كمستودع خالي من العيوب حتى لا يكون لديك نسخة عاملة مثل النسخة المحلية الخاصة بك.
يتم ذلك لتقييد التغييرات المباشرة التي تم إجراؤها على المستودع البعيد.

مستودع فارغ المفهوم ميزة إضافية للمستودع البعيد للاحتفاظ به محمي ويتم استخدامها لغرضها الوحيد وهو مشاركة الكود بين أعضاء الفريق.
يتم تحقيق ذلك من خلال إعلان أن المستودع البعيد خالٍ من خلال استخدام '--مجرد'علم في وقت تهيئته كمستودع git.
من خلال القيام بذلك ، يتم إنشاء الريبو الخاص بك باستخدام البيانات الوصفية لـ git أو بعبارة أخرى كائنات git المخزنة ضمن دليل '.git' المخفي وحده ولا تتوفر نسخة عمل لأي شخص لإضافة البيانات مباشرة.
أمر:git init - عارية.

مع وضع ذلك في الاعتبار ، للمضي قدمًا ، سنرى المزيد من الطرق لإدارة الريبو عن بُعد وكيف يمكننا مزامنة عملنا المحلي مع جهاز التحكم عن بُعد.



قم بإنشاء مستودع بعيد

أولاً وقبل كل شيء ، عليك أن تقرر الموقع الذي تريد أن تضع فيه الريبو عن بعد.
هناك عدد غير قليل من مستودعات استضافة git المستندة إلى مجموعة النظراء مثل - جيت لاب ، BitBucket ، جيثب ، بحكم الضرورة و CloudForge على سبيل المثال لا الحصر.
في هذا المنشور ، أفكر في GitHub لأن هذا هو المكان الذي بدأت فيه أولاً الاحتفاظ بمستودعات git الخاصة بي. للبدء ، كل ما عليك فعله هو تسجيل الدخول إلى حساب GitHub ثم إنشاء مستودع جديد ، يؤدي هذا إلى إنشاء عنوان URL يشير إلى هذا الريبو البعيد.


يدعم Git بروتوكولات ssh و git و http و https لمعالجة عنوان URL للمستودع.

بدلاً من ذلك ، يمكنك أيضًا وضع مشروعك في مكان آخر على سبيل المثال خادم Linux باتباع الأوامر أدناه-
cd $ HOME
mkdir remote_repo
القرص المضغوط remote_repo
git init - عارية.

قم بتوصيل جهاز التحكم عن بعد بجهازك المحلي

إن إرفاق جهاز تحكم عن بعد بنسخة العمل الخاصة بك يعني ببساطة إنشاء ملف معالج مرجع المؤشر لجهاز التحكم عن بُعد أو يُطلق عليه ببساطة ' معالج بعيد '.
دعنا ننتقل إلى مشروعي الذي أريد نشره-تعلم cd
بناء الجملة:إضافة بوابة عن بعد
أمر:بوابة إضافة أصل عن بعد https://github.com/divyabhushan/learnRemotes.git

'الأصل هل إفتراضي الاسم المرجعي للمعالج البعيد '. (يجب أن يكون الاسم البعيد اسمًا ذا صلة)
دعنا نرى ما إذا كان ذلك ناجحًا ، باستخدام الأمر:بوابة البعيد

فعلت :)

اطبع عنوان URL البعيد مع الاسم:
بوابة عن بعد -v

أحسنت! أنت جاهز تمامًا لإنشاء اتصال بمستودعك البعيد من دليل العمل المحلي.

حان وقت النشر

بناء الجملة:git push - جميع العلامات[-u | - ضبط المنبع]
أمر:بوابة دفع الأصل الرئيسية

لذا ، تقرأ هذا كـ 'دفع فرق الالتزامات إلى الأصل من المدير المحلي' .

إذا قمت بفحص حساب GitHub الخاص بك ، فيجب عرض التزاماتك المحلية (البيانات) هناك-



تتبع الفروع

لذلك ، لقد نجحت في نشر عملك على المستودع البعيد.
ومع ذلك ، من المهم أن تقوم بإعداد فرعك المحلي لـ المسار التغييرات على الفرع البعيد تلقائيًا.
استخدم ال '- إعداد المنبعأو-u'وضع علامة مع الأمر' git push '
أمر:بوابة دفع -u الأصل الرئيسي

الفروع الملونة


دعنا ننشئ التزامًا جديدًا في الفرع 'الرئيسي' ونتحقق من كيفية اكتشاف git له-
أمر:حالة بوابة


إظهار فروع التعقب في الوضع المطول
أمر:فرع بوابة -vv


ومن ثم ، في كل مرة ، هناك اختلاف في الالتزامات بين المستودع المحلي والمستودع البعيد على الفرع المتعقب ، سيعلمك Git.
أليس هذا رائعًا !!!

قراءة وكتابة ملف اكسل في جافا

كيف يمكن للآخرين الاتصال بجهاز التحكم عن بُعد؟

إنها قطعة من الكعكة عندك استنساخ مستودع بعيد !!!

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

الخطوة 1: استنساخ الريبو عن بُعد كمستخدم مختلف-
أمر:استنساخ بوابة https://github.com/divyabhushan/learnRemotes.git developer2
مطور القرص المضغوط 2

الخطوة 2: إظهار جهاز التحكم عن بعد و url الخاص به
أمر:بوابة عن بعد -v


الخطوه 3: قائمة بفروع التتبع
أمر:فرع بوابة -vv


تبدأ المتعة عندما يبدأ 'developer2' عمله الخاص ويدفع إلى جهاز التحكم عن بعد.

يمكنك الاتصال والمساهمة في أكثر من جهاز تحكم عن بعد المستودع من أ مشروع واحد .

عرض الفروع البعيدة

أمر:فرع بوابة -r


استخدم الخيار '-a' لطباعة الفروع المحلية والبعيدة ، جربها في الريبو المحلي بعد إنشاء عدد قليل من الفروع المحلية.

كيف يساهم الآخرون في جهاز التحكم عن بُعد الخاص بك؟

الإعداد الأولي
يقرر Developer2 تغيير أمرين مثل:
إلى. خلق 'ميزة' جديدة من أحدث التزام في الفرع 'الرئيسي' وعمل ملف التزام جديد على فرع 'الميزة'
الأوامر:
بوابة الخروج-ب ميزة
صدى 'تحسينات الميزات'> feature.txt
بوابة إضافة. && git الالتزام -m 'تحسينات الميزات'

ب. خلق فرع 'feature2' مختلف عن التزام أقدم في الفرع 'الرئيسي'
الأوامر:
بوابة الخروج -b feature2 95651fb
صدى 'feature2 المضافة'> feature2.txt
بوابة إضافة. && git الالتزام -m 'إضافة تغييرات feature2'

دعنا نتخيل الفروع على جهاز developer2 مع معلومات التتبع:

كما لاحظت ، لم يتم إعداد الفروع الجديدة لتتبع الفروع البعيدة.

دفع التغييرات إلى جهاز التحكم عن بعد
أولاً ، دعني أدفع فرع 'الميزة' إلى جهاز التحكم عن بعد بعلامة '–set-upstream أو -u'
أمر:ميزة أصل git push -u




سيتم إنشاء فرع جديد على جهاز التحكم عن بعد ، إذا لم يكن موجودًا بالفعل !!!

في هذه اللحظة ، اكتب الفروع البعيدة بالأمر: 'git Branch -r'




طريقة أخرى لتتبع الفرع البعيد
علاوة على ذلك ، فلنقم بتعيين فرع 'feature2' أيضًا للإشارة إلى نفس فرع 'الميزة' على جهاز التحكم عن بُعد
أمر:فرع git --set-upstream-to = original / feature feature2



فرع مشفر اللون


نصيحة سريعة: يمكنك حذف اسم الفرع المحلي إذا كنت بالفعل في هذا الفرع ، بمعنى آخر ، تم سحب الفرع المحلي بالفعل.

ضع قائمة بالفروع في الوضع المطول مرة أخرى ، الأمر:فرع بوابة -vv



لاحظ أن كلا الفروع المحلية 'ميزة' و 'feature2' تشير إلى نفس 'ميزة' الفرع البعيد.

البقاء متزامنًا مع جهاز التحكم عن بُعد - الجلب والسحب والدفع

دعونا ننظر في الجزء حيث فرع بعيد هل تم تحديث التتبع بالفعل ، فماذا بعد؟
بسيط 'حالة بوابة'أو'بوابة الخروج'أو حتى'فرع بوابة -vv'الأمر يحذرنا من عدم التطابق-



يجب أن يقوم 'Developer2' أولاً بتحديث المراجع والعناصر المحلية (' جلب بوابة ') ثم دمج التغييرات المحلية والبعيدة (' git merge ').
ومن المثير للاهتمام ، أنه يمكنك استبدال هذين الأمرين بأمر واحد 'git pull'.
بناء الجملة:اذهب سحب

لفرع لم يتم تتبعه
بناء الجملة: git pull [:]
أمر:ميزة أصل بوابة السحب: feature2

- لفرع مجنزرة
التركيب اللغوي: git pull
أمر:بوابة السحب




=> من الناحية العملية ، قد تكون هناك تعارضات تنشأ في هذه المرحلة عندما تقوم بالانسحاب من جهاز التحكم عن بُعد من أجل البساطة ، لقد ولدت تغيير الالتزام بعدم التعارض.

بعد سحب 'developer2' (الجلب والدمج) ، يجب أن تنشر التغييرات الأخيرة عن بُعد عمله الآن-
أمر:بوابة دفع الأصل HEAD: الميزة
ملاحظة: 'ميزة' فرع المنبع لا تتطابق مع اسم الفرع المحلي 'feature2' ، يجب عليك تقديمه بشكل صريح

ما هي جافا المخزن المؤقت



تذكير : 'HEAD' هو أحدث التزام في فرع 'feature2' المحلي.

متى تستخدم 'git fetch'؟
في الأوقات التي تحتاج فيها فقط إلى تحديث ملف رؤساء المرجع دون تنزيل (سحب) فعليًا من جهاز التحكم عن بُعد.
أو عندما يتم تعديل / حذف الفروع البعيدة عند التحديث ، سيتعين عليك تشغيل أمر الجلب باستخدام '--تقليم' اختيار.
كأفضل ممارسة ، يجب عليك تشغيل الأمر 'git fetch' في كل مرة تبدأ فيها العمل على الريبو المحلي.

الإدارة عن بعد

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

إعادة تسمية remote

بناء الجملة:git remote rename
أمر:git remote إعادة تسمية snv_repo svn
على سبيل المثال ، ضع في اعتبارك مدير مشروع مرتبطًا بـ 3 مشاريع-


دمج نوع الكود الزائف c ++

حذف المرجع البعيد

لنفترض أنك لم تعد تتزامن مع مستودع بعيد ، فمن المحتمل أن تحذف مرجع المؤشر إليه.
ومع ذلك ، لن يؤثر هذا على المستودع البعيد وعمل الآخرين.

بناء الجملة:بوابة إزالة عن بعد
أمر:git remote remove proj1


ماذا لو كان لديك فرع محلي معين لتتبع فرع من مستودع 'proj1' الذي تمت إزالته؟
حسنا ، الخاص بك الفرع المحلي (ومن هنا العمل) هو آمنة وما زالت موجودة ، إنها فقط مرجع التتبع عن بعد و ترتيب ستكون الإعدادات الإزالة التلقائية

حذف الفرع البعيد

تقول بطريق الخطأ دفعت بك شخصي عمل شاق على أ فرع إلى جهاز التحكم عن بعد لكن لا تريد أن يتحقق الآخرون من ذلك بعد -
قم بإزالة فرع 'العمل غير المكتمل' من جهاز التحكم عن بعد 'svn '-
أمر:فرع بوابة -vv# سرد فروع التتبع عن بعد



بناء الجملة:git push - حذف
أمر:git push - حذف svn unfinishedWork


راسلنا

بهذا نصل إلى نهاية هذا المقال. إذا وجدت هذا ' الدورة التعليمية ' ذو صلة، تفحص ال من Edureka ، وهي شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250000 متعلم راضٍ منتشرين في جميع أنحاء العالم. تساعد الدورة التدريبية لشهادة Edureka DevOps المتعلمين على اكتساب الخبرة في عمليات وأدوات DevOps المختلفة مثل Puppet و Jenkins و Nagios و GIT لأتمتة خطوات متعددة في SDLC.