Git والتعاون
ما الذي يحفظه Getman في مجلد getman/، وما الذي يزامنه بنفسه، وأي إجراءات Git لا تعمل إلا عندما تنقر.
شاهد هذا في الشرح: ما يحفظه Getman في Git (5:06)يحفظ Getman المشروع كاملا في مجلد getman/ داخل مستودع Git لديك. المجلد ملفات YAML عادية، لذلك تمر الطلبات والبيئات وعقد API وحزم التغيير عبر المراجعة نفسها التي تمر بها الشيفرة. لا يشغّل Getman Git في الخلفية نيابة عنك أبدا. تحدث عمليات fetch وpull وcommit وpush فقط عندما تختارها، أو عندما تشغّل Git بنفسك.
ما الذي يوجد في المجلد
getman/
getman.yaml المشروع: المصادقة والترويسات والإعدادات (بلا أسرار)
environments/*.yaml المتغيرات؛ القيم السرية فارغة دائما
collections/**.yaml ملف واحد لكل طلب
contracts/openapi.yaml العقد الحالي لواجهة API
changes/GT-<KEY>-<NNN>.yaml حزم التغيير، مع الأدلة وحالة التكامل
لا تُكتب القيم السرية أبدا. يحتفظ المتغير السري باسمه بقيمة فارغة، فيملأ كل زميل قيمه الخاصة، وتخزنها سلسلة المفاتيح على كل جهاز. وتكون بيانات الاعتماد الصريحة في إعدادات المصادقة فارغة أيضا.
المزامنة مع المجلد
اضبط المجلد مرة واحدة من Project settings ← Team sync باستخدام Choose folder. ثم استخدم:
Write to folderلحفظ الحالة الحالية للمشروع في المجلد.Load from folderلقراءة المجلد داخل المشروع.
عندما يختلف المجلد عن التطبيق، يسألك Getman أي نسخة تحتفظ بها. يكتب Keep mine نسخة التطبيق إلى المجلد. ويستبدل Take theirs نسخة المشروع بنسخة المجلد.
شريط Git
يقع شريط Git في عرض Changes. ويبيّن كم يتقدم فرعك على الفرع البعيد أو يتأخر عنه، ومتى جلبت آخر مرة.
| الزر | ما الذي يفعله | متى يعمل |
|---|---|---|
Fetch |
يشغّل git fetch ويحدّث ما يملكه الفرع البعيد |
فقط عندما تنقر عليه |
Pull |
يشغّل git pull --ff-only، ولا ينشئ commit دمج أبدا |
فقط عندما تنقر عليه |
Commit… |
يسجّل فقط ملفات Getman التي تحددها | فقط عندما تنقر عليه |
Push |
يدفع الفرع | فقط عندما تنقر عليه |
يستخدم Getman نسخة Git المثبّتة لديك، مع مفاتيح SSH وبيانات الاعتماد الخاصة بك. يبقى Push معطلا حتى يكون للفرع upstream. شغّل git push -u origin <branch> مرة واحدة لضبطه.
يرفض Getman عملية Pull عندما تكون لديك تغييرات محلية أو عندما يتباعد الفرع. أجرِ commit أو تجاهل التغييرات المحلية أولا. ويحتاج الفرع المتباعد إلى دمج أو rebase في Git. يُحل الدمج والتعارضات دائما داخل Git.
ما الذي يفعله Getman بنفسه
يقرأ Getman المجلد وفرع الريموت الذي جلبته، فيبقى صندوق الوارد محدثا دون أي اتصال بالشبكة. كما أنه:
- يُبلغ عن حزم التغيير الواردة، وعن تعديلات الطلبات أو العقد الواردة بعد Fetch
- يكتشف علامات التعارض والملفات غير الصالحة، ويرفض تحميلها
- يسألك قبل أن يستبدل
Pullالطلبات التي عدّلتها
يرفض Getman تحميل ملف ما زال يحتوي على علامات تعارض، أو ملف YAML غير صالح. أصلح الملف في Git أولا.
عرض Changes
افتح عرض Changes من الشريط، أو بالاختصار ⌘⇧G. له أربعة أوضاع:
| الوضع | يعرض |
|---|---|
Inbox |
التغييرات التي تحتاج إجراء منك: التعارضات، والتغييرات الكاسرة، والتشغيلات الفاشلة، والحزم الواردة، والأعمال المعلقة |
Completed |
التغييرات التي أبلغت عنها أو تحققت منها باسم المستهلك الخاص بك |
All changes |
كل حزم التغيير، بأعلى معرّف أولا |
Timeline |
كل حزم التغيير، الأحدث أولا، مع مؤلفها وعلامة التحقق |
اضبط I integrate as على اسم المستهلك الخاص بك، مثل web. عندها يعرض Inbox التغييرات التي يجب على هذا الاسم أن يتصرف بشأنها. تُعلَّم حزمة التغيير الواردة التي لم تسحبها بعد بالعبارة Not pulled yet.
المراجعة وcommit
يتضمن commit جيد لتغيير في الخادم الشيفرة وملفات getman/ معا، فيرى المراجع العقد والأمثلة والشيفرة في مكان واحد.
- افتح
Commit…وحدد ملفات Getman التي تنتمي إلى التغيير. - اكتب رسالة تذكر حزمة التغيير، مثل
GT-SHOP-001: order totals in cents. - نفّذ commit، ثم push.
تُسجَّل الملفات المحددة فقط. يترك Getman بقية المجلد دون مساس، فلا تتسرب تعديلات غير ذات صلة إلى الـ commit.
نصائح Git
- راجع فرق YAML في أداة Git المعتادة لديك. كل طلب ملف واحد، فتغيير استدعاء واحد يكون فرقا صغيرا.
- احتفظ بمجلد
getman/في المستودع نفسه الذي توجد فيه الشيفرة التي يصفها، فيتحركان معا. - إذا أنشأ شخصان معرّف التغيير نفسه، فليغيّر أحدهما اسم الملف وسطر
id:إلى الرقم الحر التالي، ثم ينفذ commit. تغطي استكشاف الأخطاء هذه الحالة.
الخطوات التالية
- يتبع سير عمل الفريق تغييرا واحدا في الخادم من Alice إلى Bob، خطوة بخطوة.
- تشرح العقود الملف الذي تُفحص حزم التغيير في مقابله.