٥، ١١، رعاية مشروع
— سحب فروع بعيدة
إذا أتتك المساهمات من مستخدم جت قد أنشأ له مستودعًا، ودفع إيداعات إليه، وأرسل إليك رابط مستودعه واسم الفرع البعيد الذي فيه التعديلات، فيمكنك إضافته مستودعًا بعيدًا في مستودعك لتدمج تعديلاته محليًّا.
مثلا إذا أرسلت إليك سميرة بريدًا تخبرك أن لديها ميزة جديدة حسنة في فرع ruby-client في مستودعها، يمكنك اختبار هذه الميزة بإضافة مستودعها البعيد وسحب هذا الفرع محليًّا:
$ git remote add sameera https://github.com/SameeraSamara/myproject.git
$ git fetch sameera
$ git checkout -b rubyclient sameera/ruby-client
وإذا راسلتك من جديد تخبرك بفرع آخر فيه ميزة أخرى حسنة، فيمكنك أن تستحضر (fetch) وتسحب (checkout) مباشرةً لأن المستودع البعيد موجود في مستودعك بالفعل.
هذا ينفع أحسن النفع إذا كنت تعمل مع مساهمٍ باستمرار. أما إذا كان المساهم يرسل رقعة واحدة كل زمن طويل، فقبولها عبر البريد قد يختصر الوقت مقارنةً بإلزام الجميع باستعمال خواديم ثم إضافة المستودعات البعيدة وإزالتها طوال الوقت من أجل بضع رقع. ثم لن يصير لديك مئات من المستودعات البعيدة، كل واحد منها لمساهم برقعة واحدة أو رقعتين. وعموما، فإن البُريمجات (scripts) والخدمات المستضافة تسهّل هذا؛ إنما يعتمد الأمر على أسلوبك وأسلوب المساهمين في التطوير.
والمزيّة الأخرى لهذا الأسلوب هو حصولك على تاريخ الإيداعات.
ربما تواجه نزاعات دمج حقيقية، لكنك هكذا ستعرف أيَّ إيداعاتك التي بُنيت المساهمات عليها، فيكون الدمج الثلاثي الحقيقي هو الخيار التلقائي، بدلًا من استعمال خيار -3 والدعاء بأن تكون الرقعة مبنية على إيداعٍ عمومي موجود في مستودعك.
إن كنت لا تعمل مع مساهمٍ ما إلا نادرًا، لكنك مع ذلك تود الجذب منه بهذا الأسلوب، فأعطِ أمر الدفع رابط مستودعه البعيد؛ هذا يجذب منه مرة واحدة ولا يحفظ الرابط في الإشارات البعيدة:
$ git pull https://github.com/onetimeguy/project
From https://github.com/onetimeguy/project
* branch HEAD -> FETCH_HEAD
Merge made by the 'recursive' strategy.