Git Submodules: Difference between revisions

From binaryoption
Jump to navigation Jump to search
Баннер1
(@pipegas_WP)
 
(@pipegas_WP)
 
Line 1: Line 1:
# Git Submodules: دليل المبتدئين
== Git Submodules: دليل شامل للمبتدئين ==


'''Git Submodules''' هي آلية قوية في نظام التحكم بالإصدار [[Git]] تسمح لك بتضمين مستودع Git آخر كمجلد داخل مستودع Git الرئيسي. هذا مفيد بشكل خاص عندما يكون لديك مشروع يعتمد على مكتبات أو مكونات خارجية يتم تطويرها بشكل مستقل. بدلاً من نسخ هذه المكونات مباشرةً في مستودعك، يمكنك استخدام Submodules للإشارة إليها، مما يسمح لك بتتبع التغييرات في المستودع الخارجي وتحديثها في مشروعك بسهولة.
'''مقدمة'''


== لماذا نستخدم Submodules؟ ==
في عالم [[التحكم في الإصدار]] باستخدام [[Git]]، قد تجد نفسك بحاجة إلى تضمين مشروع آخر داخل مشروعك الحالي. قد يكون هذا المشروع عبارة عن مكتبة، أو إطار عمل، أو أي مكون آخر ترغب في استخدامه دون الحاجة إلى نسخه ولصقه في مشروعك. هنا يأتي دور '''Git Submodules''' إلى الواجهة.  Submodules تسمح لك بالإشارة إلى commit محدد في مستودع Git آخر، وتضمينه كجزء من مشروعك. هذا المقال موجه للمبتدئين ويهدف إلى شرح مفهوم Git Submodules بالتفصيل، مع أمثلة عملية وشرح لكيفية استخدامها بفعالية.


هناك عدة أسباب لاستخدام Git Submodules:
== ما هي Git Submodules؟ ==


*  '''إدارة الاعتماديات:'''  تسهل إدارة المكتبات أو المكونات الخارجية.
ببساطة، Git Submodule هو مرجع إلى commit معين في مستودع Git آخر.  لا يتم نسخ الكود الفعلي للمستودع الفرعي مباشرةً داخل مستودعك الرئيسي. بدلاً من ذلك، يتم تخزين مرجع إلى هذا الـ commit.  عندما تقوم باستنساخ مستودع يحتوي على submodules، فإن Git لا يقوم تلقائيًا بتنزيل الكود الخاص بالـ submodules. يجب عليك تهيئة submodules وتحديثها بشكل منفصل.
*  '''الفصل والتنظيم:'''  تحافظ على مشروعك الرئيسي نظيفًا ومنظمًا عن طريق فصل المكونات الخارجية.
 
*  '''تحديثات مستقلة:'''  تسمح بتحديث المكونات الخارجية بشكل مستقل دون التأثير على المشروع الرئيسي.
== لماذا نستخدم Git Submodules؟ ==
*  '''التحكم في الإصدار:''' تتيح لك تحديد إصدار معين من المكون الخارجي لاستخدامه في مشروعك.
 
*  '''إعادة استخدام الكود:'''  تتيح لك إعادة استخدام الكود الموجود في مستودعات أخرى دون الحاجة إلى نسخه ولصقه.
*  '''إدارة الاعتماديات:'''  تساعد في إدارة الاعتماديات على مشاريع أخرى بشكل فعال.  يمكنك تحديد إصدار معين من مكتبة أو إطار عمل لاستخدامه في مشروعك.
*  '''فصل المشاريع:'''  تحافظ على فصل المشاريع المختلفة، مما يجعلها أكثر قابلية للصيانة والتطوير بشكل مستقل.
*  '''التعاون:''' تسهل التعاون مع مطورين آخرين على مشاريع مختلفة.


== إضافة Submodule ==
== إضافة Submodule ==


لإضافة Submodule، استخدم الأمر `git submodule add`. الصيغة العامة هي:
لإضافة submodule، استخدم الأمر `git submodule add`:


```
```
git submodule add <عنوان URL للمستودع> <المسار المحلي>
git submodule add <عنوان_URL_المستودع> <المسار_الذي_تريد_إضافة_الـsubmodule_فيه>
```
```


على سبيل المثال، لإضافة مستودع باسم "my-library" إلى مجلد باسم "libs/my-library" في مشروعك، ستستخدم الأمر التالي:
على سبيل المثال، لإضافة مكتبة 'crypto-library' الموجودة على GitHub إلى مجلد 'libs' في مشروعك:


```
```
git submodule add https://github.com/user/my-library libs/my-library
git submodule add https://github.com/example/crypto-library.git libs/crypto-library
```
```


هذا الأمر سيقوم بما يلي:
سيؤدي هذا إلى:


1.  إضافة إدخال إلى ملف `.gitmodules`، والذي يتتبع معلومات حول Submodule.
1.  إضافة إدخال في ملف `.gitmodules` يصف الـ submodule.
2.  إنشاء ملف `.git/config` يحتوي على معلومات حول Submodule.
2.  إنشاء ملف `.git/config` يربط الـ submodule بعنوان URL الخاص به.
3.  إضافة المجلد الجديد إلى [[فهرس Git]] (staging area).
3.  إضافة ملف (أو مجلد) فارغ في المسار المحدد (libs/crypto-library في هذا المثال).
4.  تنفيذ commit للتغييرات.


== تهيئة Submodules بعد الاستنساخ ==
== تهيئة وتحديث Submodules ==


عندما تستنسخ مستودعًا يحتوي على Submodules، لن يتم استنساخ Submodules تلقائيًا. ستحتاج إلى تهيئتها وتحديثها بشكل منفصل. استخدم الأوامر التالية:
بعد استنساخ مستودع يحتوي على submodules، يجب عليك تهيئة وتحديث الـ submodules:


```
1.  '''التهيئة:''' استخدم الأمر `git submodule init` لتهيئة الـ submodules.
git submodule init
 
git submodule update
    ```
```
    git submodule init
    ```
 
2.  '''التحديث:''' استخدم الأمر `git submodule update` لتنزيل الكود الخاص بالـ submodules إلى المسار المحدد.


`git submodule init` يقوم بتهيئة Submodules عن طريق تسجيل معلوماتها من ملف `.gitmodules`.
    ```
*  `git submodule update` يقوم باستنساخ محتوى Submodules إلى المجلدات المحددة.
    git submodule update
    ```


يمكنك دمج هذين الأمرين في أمر واحد:
يمكنك دمج الخطوتين باستخدام الأمر:


```
```
Line 51: Line 58:
```
```


الخيار `--recursive` سيقوم بتهيئة وتحديث جميع Submodules المتداخلة.
الخيار `--recursive` يضمن تحديث أي submodules متداخلة.


== العمل مع Submodules ==
== العمل مع Submodules ==


عندما تعمل مع Submodules، من المهم أن تفهم كيفية التعامل مع التغييرات.
*  '''التغييرات في Submodule:''' إذا قمت بإجراء تغييرات داخل الـ submodule، فسوف تحتاج إلى commit هذه التغييرات في مستودع الـ submodule نفسه.
*  '''تحديث الـ Submodule إلى Commit جديد:'''  إذا كان الـ submodule قد تطور (تم إجراء commits جديدة عليه)، يمكنك تحديثه إلى commit جديد في مشروعك الرئيسي.  أولاً، انتقل إلى دليل الـ submodule، ثم قم بعمل `git pull` للحصول على أحدث التغييرات.  بعد ذلك، ارجع إلى مشروعك الرئيسي وقم بعمل commit للتغيير في الـ submodule (الذي يشير الآن إلى commit جديد).
*  '''إزالة Submodule:'''  لإزالة الـ submodule، يمكنك استخدام الأمر `git submodule deinit`:


*  '''التغييرات في Submodule:''' إذا قمت بإجراء تغييرات في Submodule، فستحتاج إلى تنفيذ commit لهذه التغييرات في مستودع Submodule نفسه. ثم، في المستودع الرئيسي، ستحتاج إلى تسجيل التغيير في commit الخاص بـ Submodule (أي، تسجيل commit الجديد في Submodule).
  ```
*  '''تحديث Submodule:''' لتحديث Submodule إلى أحدث إصدار، انتقل إلى مجلد Submodule وقم بتنفيذ `git pull`. ثم، انتقل إلى المستودع الرئيسي وسجل التغيير في commit الخاص بـ Submodule.
  git submodule deinit <المسار_الذي_يحتوي_على_الـsubmodule>
  ```


== إزالة Submodule ==
  ثم احذف الدليل الخاص بالـ submodule وقم بعمل commit للتغييرات.


لإزالة Submodule، ستحتاج إلى القيام بعدة خطوات:
== استراتيجيات تداول الخيارات الثنائية ذات الصلة (للتوضيح - هذه ليست جزءًا أساسيًا من Submodules ولكنها ذات صلة بموضوع التداول) ==


1.  إزالة المجلد من [[فهرس Git]].
[[استراتيجية مارتينجال]]
2.  إزالة الإدخال من ملف `.gitmodules`.
*  [[استراتيجية المضاعفة]]
3.  إزالة الإدخال من ملف `.git/config`.
*  [[استراتيجية التداول بناءً على الأخبار]]
4.  تنفيذ commit للتغييرات.
*  [[استراتيجية التداول باستخدام المتوسطات المتحركة]]
*  [[استراتيجية التداول باستخدام مؤشر القوة النسبية (RSI)]]
*  [[تداول الاختراقات]]
*  [[تداول الارتداد]]
*  [[تداول الاتجاه]]
*  [[تداول النطاق]]
*  [[تداول الخيارات الثنائية على الأخبار الاقتصادية]]
*  [[استراتيجية التداول باستخدام أنماط الشموع اليابانية]]
*  [[استراتيجية التداول باستخدام خطوط فيبوناتشي]]
*  [[تداول الخيارات الثنائية باستخدام التحليل الفني]]
*  [[تداول الخيارات الثنائية باستخدام التحليل الأساسي]]
*  [[تداول الخيارات الثنائية باستخدام التحليل العاطفي]]


هناك أوامر مختلفة يمكن استخدامها لإزالة Submodule، ولكن الطريقة الأكثر شيوعًا هي:
== التحليل الفني وتحليل حجم التداول (للتوضيح) ==


```
*  [[مؤشر الماكد (MACD)]]
git submodule deinit <المسار المحلي>
*  [[مؤشر ستوكاستيك]]
git rm <المسار المحلي>
*  [[مؤشر البولينجر باند]]
rm -rf <المسار المحلي>
*  [[مؤشر القوة النسبية (RSI)]]
git commit -m "Remove submodule <المسار المحلي>"
*  [[التحليل الحجمي]]
```
*  [[مستوى الدعم والمقاومة]]
*  [[خطوط الاتجاه]]
*  [[أنماط الشموع اليابانية]]
*  [[مؤشرات التذبذب]]
*  [[التحليل الموجي إليوت]]
*  [[نظرية داو]]
*  [[التحليل الفني المتقدم]]
*  [[تحليل حجم التداول المتقدم]]
*  [[استخدام مؤشرات التداول المتعددة]]
*  [[تحديد نقاط الدخول والخروج]]


== مقارنة Submodules بـ Subtrees ==
== نصائح إضافية ==
 
'''Git Subtrees''' هي بديل لـ Git Submodules. على عكس Submodules، التي تحتفظ بمستودع منفصل، فإن Subtrees تدمج تاريخ المستودع الخارجي في المستودع الرئيسي. Subtrees أكثر تعقيدًا في الاستخدام، ولكنها يمكن أن تكون مفيدة في بعض الحالات.
 
== أفضل الممارسات لاستخدام Submodules ==
 
*  '''استخدم Submodules بحذر:'''  يمكن أن تكون Submodules معقدة، لذا تأكد من أنك تفهم كيفية عملها قبل استخدامها.
*  '''حافظ على تحديث Submodules:'''  تأكد من أن Submodules الخاصة بك محدثة بأحدث الإصدارات.
*  '''وثق Submodules الخاصة بك:'''  وثق Submodules الخاصة بك في مستندات مشروعك.
*  '''استخدم أداة لإدارة Submodules:'''  هناك أدوات متاحة يمكن أن تساعدك في إدارة Submodules الخاصة بك.
 
== استراتيجيات التداول ذات الصلة ==
 
*  [[استراتيجية الاختراق]]
*  [[استراتيجية المتوسط المتحرك]]
*  [[استراتيجية البولينجر باند]]
*  [[استراتيجية التصحيح]]
*  [[استراتيجية فيبوناتشي]]
*  [[استراتيجية RSI]]
*  [[استراتيجية MACD]]
*  [[استراتيجية Ichimoku Cloud]]
*  [[استراتيجية الدعم والمقاومة]]
*  [[استراتيجية أنماط الشموع اليابانية]]
*  [[استراتيجية تداول الأخبار]]
*  [[استراتيجية التداول المتأرجح]]
*  [[استراتيجية التداول اليومي]]
*  [[استراتيجية التحوط]]
*  [[استراتيجية المضاربة]]
 
== التحليل الفني وحجم التداول ==
 
*  [[التحليل الفني]]
*  [[حجم التداول]]
*  [[مؤشر القوة النسبية (RSI)]]
*  [[التقارب والتباعد للمتوسطات المتحركة (MACD)]]
*  [[مؤشر ستوكاستيك]]
*  [[مؤشر ADX]]
*  [[تحليل أنماط الرسوم البيانية]]
*  [[تحليل حجم التداول]]
*  [[تحليل الشموع اليابانية]]
*  [[مستويات فيبوناتشي]]
*  [[مستويات الدعم والمقاومة]]
*  [[مؤشرات التقلب]]
*  [[مؤشرات الاتجاه]]
*  [[مؤشرات الزخم]]
*  [[تحليل السوق]]


== موارد إضافية ==
*  تأكد من فهمك الكامل لكيفية عمل Git Submodules قبل استخدامها في مشاريعك.
*  وثق استخدام الـ submodules في مشروعك لمساعدة الآخرين على فهم كيفية عملها.
*  كن حذرًا عند تحديث الـ submodules، فقد يؤدي ذلك إلى حدوث تعارضات.
*  استخدم الـ submodules بحذر، فقد تجعل مشروعك أكثر تعقيدًا.
*  [[Git Branching]]
*  [[Git Merging]]
*  [[Git Rebase]]
*  [[Git Tagging]]
*  [[Git Commit]]
*  [[Git Stashing]]
*  [[Git Reset]]
*  [[Git Cherry-Pick]]
*  [[Git Diff]]
*  [[Git Log]]


*  [Git Submodule Documentation](https://git-scm.com/book/en/v2/Git-Tools-Submodules)
== الخلاصة ==
*  [Understanding Git Submodules](https://www.atlassian.com/git/tutorials/git-submodules)
*  [Git Submodules: A Practical Guide](https://www.digitalocean.com/community/tutorials/how-to-use-git-submodules)


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


[[Git]]
[[Category:**الفئة:أنظمة_التحكم_في_الإصدار** ]]
[[التحكم في الإصدار]]
[[مستودع Git]]
[[فهرس Git]]
[[Git Subtree]]
[[ملف .gitmodules]]
[[استنساخ Git]]
[[Git pull]]
[[Git commit]]
[[Git rm]]
[[Git init]]
[[Git update]]
[[تحليل المخاطر]]
[[إدارة المخاطر]]
[[تنويع المحفظة]]
[[التحليل الأساسي]]
[[التحليل الفني]]
[[الرسوم البيانية]]
[[مؤشرات التداول]]
[[أوامر التداول]]
[[الرافعة المالية]]
[[التقلب]]
[[إدارة رأس المال]]
[[Category:الفئة:Git]]


== ابدأ التداول الآن ==
== ابدأ التداول الآن ==

Latest revision as of 01:52, 24 April 2025

Git Submodules: دليل شامل للمبتدئين

مقدمة

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

ما هي Git Submodules؟

ببساطة، Git Submodule هو مرجع إلى commit معين في مستودع Git آخر. لا يتم نسخ الكود الفعلي للمستودع الفرعي مباشرةً داخل مستودعك الرئيسي. بدلاً من ذلك، يتم تخزين مرجع إلى هذا الـ commit. عندما تقوم باستنساخ مستودع يحتوي على submodules، فإن Git لا يقوم تلقائيًا بتنزيل الكود الخاص بالـ submodules. يجب عليك تهيئة submodules وتحديثها بشكل منفصل.

لماذا نستخدم Git Submodules؟

  • إعادة استخدام الكود: تتيح لك إعادة استخدام الكود الموجود في مستودعات أخرى دون الحاجة إلى نسخه ولصقه.
  • إدارة الاعتماديات: تساعد في إدارة الاعتماديات على مشاريع أخرى بشكل فعال. يمكنك تحديد إصدار معين من مكتبة أو إطار عمل لاستخدامه في مشروعك.
  • فصل المشاريع: تحافظ على فصل المشاريع المختلفة، مما يجعلها أكثر قابلية للصيانة والتطوير بشكل مستقل.
  • التعاون: تسهل التعاون مع مطورين آخرين على مشاريع مختلفة.

إضافة Submodule

لإضافة submodule، استخدم الأمر `git submodule add`:

``` git submodule add <عنوان_URL_المستودع> <المسار_الذي_تريد_إضافة_الـsubmodule_فيه> ```

على سبيل المثال، لإضافة مكتبة 'crypto-library' الموجودة على GitHub إلى مجلد 'libs' في مشروعك:

``` git submodule add https://github.com/example/crypto-library.git libs/crypto-library ```

سيؤدي هذا إلى:

1. إضافة إدخال في ملف `.gitmodules` يصف الـ submodule. 2. إنشاء ملف `.git/config` يربط الـ submodule بعنوان URL الخاص به. 3. إضافة ملف (أو مجلد) فارغ في المسار المحدد (libs/crypto-library في هذا المثال).

تهيئة وتحديث Submodules

بعد استنساخ مستودع يحتوي على submodules، يجب عليك تهيئة وتحديث الـ submodules:

1. التهيئة: استخدم الأمر `git submodule init` لتهيئة الـ submodules.

   ```
   git submodule init
   ```

2. التحديث: استخدم الأمر `git submodule update` لتنزيل الكود الخاص بالـ submodules إلى المسار المحدد.

   ```
   git submodule update
   ```

يمكنك دمج الخطوتين باستخدام الأمر:

``` git submodule update --init --recursive ```

الخيار `--recursive` يضمن تحديث أي submodules متداخلة.

العمل مع Submodules

  • التغييرات في Submodule: إذا قمت بإجراء تغييرات داخل الـ submodule، فسوف تحتاج إلى commit هذه التغييرات في مستودع الـ submodule نفسه.
  • تحديث الـ Submodule إلى Commit جديد: إذا كان الـ submodule قد تطور (تم إجراء commits جديدة عليه)، يمكنك تحديثه إلى commit جديد في مشروعك الرئيسي. أولاً، انتقل إلى دليل الـ submodule، ثم قم بعمل `git pull` للحصول على أحدث التغييرات. بعد ذلك، ارجع إلى مشروعك الرئيسي وقم بعمل commit للتغيير في الـ submodule (الذي يشير الآن إلى commit جديد).
  • إزالة Submodule: لإزالة الـ submodule، يمكنك استخدام الأمر `git submodule deinit`:
  ```
  git submodule deinit <المسار_الذي_يحتوي_على_الـsubmodule>
  ```
  ثم احذف الدليل الخاص بالـ submodule وقم بعمل commit للتغييرات.

استراتيجيات تداول الخيارات الثنائية ذات الصلة (للتوضيح - هذه ليست جزءًا أساسيًا من Submodules ولكنها ذات صلة بموضوع التداول)

التحليل الفني وتحليل حجم التداول (للتوضيح)

نصائح إضافية

  • تأكد من فهمك الكامل لكيفية عمل Git Submodules قبل استخدامها في مشاريعك.
  • وثق استخدام الـ submodules في مشروعك لمساعدة الآخرين على فهم كيفية عملها.
  • كن حذرًا عند تحديث الـ submodules، فقد يؤدي ذلك إلى حدوث تعارضات.
  • استخدم الـ submodules بحذر، فقد تجعل مشروعك أكثر تعقيدًا.
  • Git Branching
  • Git Merging
  • Git Rebase
  • Git Tagging
  • Git Commit
  • Git Stashing
  • Git Reset
  • Git Cherry-Pick
  • Git Diff
  • Git Log

الخلاصة

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

ابدأ التداول الآن

سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер