"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > أول مرة أعمل مع Git Remote

أول مرة أعمل مع Git Remote

تم النشر بتاريخ 2024-11-08
تصفح:956

First time working with Git remote

مقدمة

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

ميزة جديدة: دعم تكوين TOML

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

على سبيل المثال، إذا كان لدى المستخدم ملف تكوين في C:\User\Anh\config.toml، فستقوم الأداة الآن بالتحقق من وجود ملفات .toml في الدليل الرئيسي للمستخدم. في حالة وجود مثل هذا الملف، تقوم الأداة بقراءة الملف وتطبيق قيمه لتعيين التكوينات الافتراضية، وتجاوز الإعدادات الافتراضية المضمنة. ومع ذلك، لا يزال بإمكان المستخدمين توفير وسيطات سطر الأوامر، والتي ستكون لها الأولوية على قيم ملف TOML.

تطبيق

لتنفيذ هذه الميزة، استخدمت حزمة toml لتحليل محتويات ملف تكوين TOML:


import * as toml from 'toml';


نظرًا لأن الأداة ستبحث عن ملف .toml في الدليل الرئيسي للمستخدم، فقد استخدمت وحدة نظام التشغيل المدمجة في Node.js لاسترداد مسار الدليل الرئيسي:


const os = require("os");
const homeDir = os.homedir();


بعد جمع كافة الملفات من الدليل الرئيسي للمستخدم، قمت بالتكرار عليها للعثور على الملفات المخفية (تلك التي تبدأ بنقطة .) والتي تنتهي بـ .toml. تم استخدام ملف .toml الأول الذي تم العثور عليه كمصدر تكوين للأداة.

ملحوظات

  • ستبحث الأداة عن "ملف نقطي" مخفي (على سبيل المثال، .config.toml) في الدليل الرئيسي، يحتوي على خيارات افتراضية بتنسيق TOML.
  • إذا كان الملف مفقودًا، فستتجاهل الأداة ذلك وتستمر في الإعدادات الافتراضية كما في ملف config.js.
  • إذا كان الملف موجودًا ولكنه ليس TOML صالحًا، فسوف تخرج الأداة برسالة خطأ مناسبة.
  • إذا كان ملف TOML موجودًا ولم تتجاوز أي وسيطات سطر أوامر قيمه، فسيتم استخدام الإعدادات من ملف TOML (على سبيل المثال، النموذج الافتراضي).
  • ستتجاهل الأداة أي خيارات غير معروفة في ملف TOML لضمان التوافق مع الإصدارات السابقة.

عملية التعاون عن بعد

كما ذكرنا سابقًا، تضمن هذا الأسبوع ممارسة سير عمل Git عن بُعد ودمج Git مع Mayank. للعمل على ميزة في مستودعه، اتبعت الخطوات التالية:

  1. Fork and Clone: لقد قمت بتقسيم مستودعه واستنساخه على جهازي المحلي.
  2. إنشاء فرع: لقد قمت بإنشاء فرع جديد في نسختي المحلية وبدأت العمل على الميزة الجديدة.
  3. الالتزام والدفع: بعد إجراء التغييرات، قمت بإلزامها بالفرع ودفعت الفرع إلى المستودع المتشعب الخاص بي.
 git push origin 

بمجرد أن دفع Mayank تغييراته إلى فرع جديد وطلب طلب سحب (PR)، أردت اختبار الكود الخاص به قبل الدمج. هذا هو المكان الذي أصبح فيه git Remote ضروريًا:

  • إضافة جهاز تحكم عن بعد: أضفت مستودعه كجهاز تحكم عن بعد إلى جهازي المحلي:

  git remote add 
  • جلب الالتزامات: لقد جلبت أحدث الالتزامات والفروع من مستودعه:

git fetch 
  • فرع التتبع: لقد قمت بإنشاء فرع تتبع لمتابعة تحديثاته دون التأثير بشكل مباشر على المستودع الخاص بي:

git checkout -b /

تحديد الأخطاء وحلها

أثناء الاختبار، حددت مشكلتين رئيسيتين في فرع مايانك:

  • التكوين الخاطئ للدليل: كانت الأداة تقرأ ملف TOML بشكل غير صحيح من جذر المشروع بدلاً من الدليل الرئيسي للمستخدم.
  • دقة المسار: كان الرمز يستخدم مسار ملف نسبي، مما تسبب في حدوث أخطاء عندما قمت بتشغيله على جهازي. اقترحت التبديل إلى المسار المطلق

// Resolve the path to the configuration file
const configPath = path.resolve(__dirname, "../.toml");

// Load configuration from config.toml
const config = loadConfig(configPath);


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

خاتمة

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

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

بيان الافراج تم نشر هذه المقالة على: https://dev.to/anhchienvu/first-time-working-with-git-remote-5dbl?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3