كيفية إعداد مشروع GIT لاستخدام وحدة فرعية خارجية خارجية؟

StackOverflow https://stackoverflow.com/questions/2140985

سؤال

أرغب في إنشاء ريبو يسحب في ريبو بعيد.

على سبيل المثال ، دعنا نقول jQuery كوحدة فرعية:

git://github.com/jquery/jquery.git

ما هي عملية إنشاء ريبو مع jQuery كوحدة فرعية وإضافة خارجي خاص بي كإعادة ريبو عن بعد.

أيضًا بمجرد أن يتم الإعداد ، إذا قمت بالدفع / سحبت إلى جهاز التحكم عن بُعد ، فهل سيظل الخارجي سليماً؟

هل كانت مفيدة؟

المحلول

  1. لديك مشروع - اتصل به MyWebapp أن لديه بالفعل ريبو جيثب
  2. تريد استخدام مستودع jQuery في مشروعك
  3. تريد سحب ريبو jQuery إلى مشروعك ك الجهاز الفرعي.

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

cd MyWebApp
git submodule add git://github.com/jquery/jquery.git externals/jquery

سيؤدي هذا إلى إنشاء دليل اسمه externals/jquery* وربطه بمستودع github jquery. الآن نحتاج فقط إلى بدء الجهاز الفرعي واستنساخ الرمز إليه:

git submodule update --init --recursive

يجب أن يكون لديك الآن جميع التعليمات البرمجية التي تم استنساخها في الجهاز الفرعي. إذا تغير jQuery Repo وتريد سحب أحدث الكود لأسفل ، فما عليك سوى إصدار submodule update القيادة مرة أخرى. يرجى ملاحظة: عادةً ما يكون لدي عدد من المستودعات الخارجية في مشاريعي ، لذلك أقوم دائمًا بتجميع الإعادة في دليل "Externals".

عبر الإنترنت كتاب برو جيت لديه بعض المعلومات الجيدة عن العارض الفرعي (و GIT بشكل عام) المقدمة بطريقة سهلة القراءة. بالتناوب، git help submodule سوف يعطي أيضا معلومات جيدة. أو إلقاء نظرة على GIT Submodule البرنامج التعليمي على git wiki.

لقد لاحظت إدخال المدونة هذا الذي يتحدث عن العوامل الفرعية ويقارنها بـ SVN's SVN: آلية الخارجية: http://speirs.org/blog/2009/5/11/underSing-git-submodules.html

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

نصائح أخرى

تم بالفعل الرد على معظم ما تحتاج إلى معرفته ، لذلك لن أزعجني معالجة ذلك ، ومع ذلك ، فقد وجدت معلومات صغيرة مفقودة عادة.

كما تعلمون ، لن يقوم "GIT Pull" بتحديث العوامل الفرعية ، ولن يقوم "Git Submodules Update" بتنزيل أحدث رأس للفيروسات الفرعية أيضًا.

لتحديث جميع النماذج الفرعية الخاصة بك إلى آخر مراجعة المنبع ، يمكنك استخدام

git submodule foreach git pull

إذا قمت في كثير من الأحيان بتغيير النسيج الفرعي الخاص بك ، ولديك الكثير من ، فإن "git foreach" ستصبح لا تقدر بثمن.

في النهاية وجدت http://github.com/evilchelu/braid يبدو أنه يتناسب مع الطريقة التي توقعت بها العروض الفرعية وأدوات التحكم عن بعد

أعتقد أن إجابة hugo يمكن أن تكون ما تحتاجه وتعمل بشكل جيد. لذلك وجدت طريقة أسهل.

git submodule update --remote

هذا كل شئ.

لذلك يمكن أن يكون سير العمل الكامل:

git clone project-with-submodules
git submodule init
git config -l
git submodule update --remote
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top