رفتن به محتوای اصلی

دسترسی زودهنگام 123Coder: برای استفاده از نسخهٔ فعلی درخواست بدهید؛ پس از بررسی، نتیجه برای شما ارسال می‌شود.

درخواست دسترسی
بازگشت به مقاله‌ها
برنامه‌نویسی با هوش مصنوعی5 دقیقه مطالعه

کار موازی عامل‌های کدنویسی با Git Worktree؛ جداسازی و ادغام قابل‌بررسی

خلاصهٔ پاسخ

برای هر کار مستقل، شاخه و پوشهٔ جدا بسازید؛ اما پورت، پایگاه داده و دسترسی را جداگانه مدیریت کنید. Worktree به‌تنهایی sandbox امنیتی نیست.

دو توسعه‌دهندهٔ ایرانی در حال کار مستقل پشت میزهای جدا در یک فضای کاری
TelegramWhatsAppLinkedIn

در این مقاله
  1. Worktree کدام مشکل را حل می‌کند؟
  2. پیش از موازی‌کردن، وابستگی را بررسی کنید
  3. نمونهٔ ساخت دو محیط آزمایشی
  4. منابعی که باید جداگانه مدیریت شوند
  5. تحویل و ادغام مرحله‌به‌مرحله
  6. پایان کار بدون از دست‌دادن شواهد
نوشتهٔپوریا افضلی

برای کار موازی با عامل‌های کدنویسی، به هر وظیفهٔ مستقل یک شاخه و پوشهٔ کاری جدا بدهید و مالک ادغام را مشخص کنید. Git Worktree این جداسازی فایل‌ها را فراهم می‌کند، اما پایگاه داده، پورت، اعتبارنامه و اختیار سیستم‌عامل را خودکار جدا نمی‌کند. بنابراین «پوشهٔ متفاوت» با «محیط امن و مستقل» یکسان نیست.

Worktree کدام مشکل را حل می‌کند؟

وقتی دو عامل در یک پوشه فایل‌ها را هم‌زمان ویرایش می‌کنند، ممکن است نتیجهٔ تست یکی به تغییر ناتمام دیگری وابسته شود یا فایل پیش از ثبت شواهد عوض شود. طبق مستند Git، linked worktree پوشهٔ کاری، index و HEAD جدا دارد و بخشی از داده‌های مخزن را به اشتراک می‌گذارد.

در نتیجه می‌توانید دو تغییر مستقل را از یک commit مبنا آماده کنید، بدون آنکه دائماً شاخهٔ یک پوشه را عوض کنید. این مزیت، مجوز اجرای کد نامطمئن با دسترسی میزبان نیست. مرزهای مجوز عامل همچنان باید جداگانه اعمال شوند.

پیش از موازی‌کردن، وابستگی را بررسی کنید

دو کار مانند اصلاح مستند راه‌اندازی و افزودن تست یک parser می‌توانند مستقل باشند. دو تغییر روی یک قرارداد API یا یک migration مشترک معمولاً به ترتیب اجرا یا توافق قبلی نیاز دارند. موازی‌کردن مسئله‌ای که هنوز قرارداد مشترکش روشن نیست، فقط تعارض را به زمان ادغام منتقل می‌کند.

برای هر وظیفه بنویسید: commit مبنا، فایل‌های تحت مالکیت، فایل‌های مشترک ممنوع یا هماهنگ‌شده، فرمان تست و خروجی قابل‌تحویل. نصب dependency یا تغییر lockfile را هم در مالکیت فایل حساب کنید؛ «فقط تست» ممکن است فایل مشترک را تغییر دهد.

نمونهٔ ساخت دو محیط آزمایشی

این فرمان‌ها برای یک مخزن محلی تمیز و مسیرهای جدید نوشته شده‌اند. ابتدا وضعیت را ببینید و به‌جای تکیه بر HEAD متحرک، SHA مبنای تأییدشده را ثبت کنید. BASE_SHA در مثال یک جای‌نگهدار است و باید پیش از اجرا جایگزین شود.

git status --short
git rev-parse HEAD
git worktree list
git worktree add -b task/parser-tests ../parser-tests BASE_SHA
git worktree add -b task/setup-docs ../setup-docs BASE_SHA

نام شاخه و مسیر باید آزاد باشند. اگر موجودند، ابتدا مالک و کار جاری را مشخص کنید؛ از اجبار برای بازنویسی یا حذف استفاده نکنید. هر عامل باید در مسیر اختصاصی خودش کار کند و پیش از اجرا، مسیر جاری و شاخه را گزارش دهد.

منابعی که باید جداگانه مدیریت شوند

منبعخطر اشتراک ناخواستهاقدام پیشنهادی
پورت سرویس محلیاتصال تست به برنامهٔ عامل دیگرتخصیص پورت مجزا و ثبت آدرس
پایگاه دادهٔ تستتداخل داده و پاک‌سازیدیتابیس یا namespace آزمایشی مستقل
فایل خروجی و پوشهٔ موقتoverwrite نتایجمسیر خروجی مختص هر کار
اعتبارنامه و شبکهاثر بیرون از مخزنحساب محدود و سیاست دسترسی مستقل
lockfile و قرارداد عمومیتعارض معنایی در ادغامیک مالک یا اجرای ترتیبی

بررسی کنید اسکریپت‌ها مسیر مطلق مشترک نداشته باشند. حتی با دو checkout، هر دو برنامه ممکن است از تنظیمات محیطی یکسان به یک سرویس وصل شوند. در کار حساس، جداسازی فرایند یا محیط اجرا نیز لازم است؛ Worktree جای آن را نمی‌گیرد.

تحویل و ادغام مرحله‌به‌مرحله

عامل اول باید commit یا diff خودش، تست‌های اجراشده، موارد اجرا‌نشده و تغییر فایل‌های مشترک را تحویل دهد. عامل دوم نیز همین شواهد را از پوشهٔ خودش ارائه کند. مالک ادغام ابتدا یک تغییر را وارد شاخهٔ هدف کند و سپس تغییر دوم را نسبت به مبنای جدید بررسی کند.

تعارض متنی تنها نوع تعارض نیست. دو تغییر می‌توانند بدون conflict ادغام شوند اما یکی فرض رفتاری دیگری را عوض کند. پس از ادغام، تست مشترک و رفتار بین دو تغییر را بررسی کنید. اگر لازم است تستی دوباره اجرا شود، دلیل آن تغییر مبنا یا اثر ادغام است، نه صرفاً تکرار بی‌هدف.

از چک‌لیست بازبینی کد AI برای ارزیابی تغییر نهایی استفاده کنید. سبز بودن دو شاخهٔ جدا، نتیجهٔ ترکیب آن‌ها را تضمین نمی‌کند.

پایان کار بدون از دست‌دادن شواهد

پیش از کنارگذاشتن یک Worktree، اطمینان پیدا کنید فرایندی از آن استفاده نمی‌کند و تغییرات، فایل‌های ثبت‌نشده و خروجی‌های لازم حفظ شده‌اند. پس از تأیید تمیزبودن محیط و تحویل کار، فرمان عادی git worktree remove را برای همان مسیر به‌کار ببرید. اگر ابزار میزبان آرشیو بازیابی‌پذیر دارد، از چرخهٔ مدیریت همان ابزار استفاده کنید. حذف اجباری، راه‌حل یک وضعیت نامعلوم نیست.

Worktree برای دو وظیفهٔ کوچک و مستقل شروع مناسبی است؛ برای کارهای وابسته، اجرای ترتیبی اغلب شفاف‌تر است. هنگام انتخاب ابزار، قابلیت‌های فعلی 123Coder را با نیاز واقعی مقایسه کنید. این راهنما دربارهٔ Git است و پشتیبانی خودکار محصول از همین گردش‌کار را فرض نمی‌کند.

بازبینی منابع: ۱ اکتبر ۲۰۲۶. جلد صحنه‌ای تولیدشده با هوش مصنوعی است و تیم یا مشتری واقعی را نشان نمی‌دهد.

پوریا افضلی

دربارهٔ نویسنده

پوریا افضلی

پوریا افضلی، بنیان‌گذار 123Coder، بیش از ۱۵ سال است که در دنیای توسعه نرم‌افزار، معماری سیستم‌ها و ساخت محصولات تکنولوژی فعالیت می‌کند. تمرکز فعلی او روی AI Coding، AI Agents و آینده توسعه نرم‌افزار است؛ جایی که هوش مصنوعی از یک ابزار کمکی، به بخشی واقعی از تیم مهندسی تبدیل می‌شود.

گفت‌وگو

تجربه‌تان را بنویسید یا سؤال بپرسید. نظرات پس از تأیید مدیر منتشر می‌شوند.

در حال بارگذاری…

برای ادامهٔ مطالعه

دستیار کدنویسی، عامل کدنویسی و تکمیل خودکار چه تفاوتی دارند؟

تکمیل خودکار پیشنهاد کوتاه می‌دهد، دستیار در گفت‌وگو و بررسی کد کمک می‌کند و عامل می‌تواند یک فرایند چندمرحله‌ای را با ابزارها پیش ببرد؛ تفاوت اصلی در دامنه اختیار است.

پوریا افضلی · 7 دقیقه مطالعه

مطالعه مقاله

دستیار برنامه‌نویسی هوش مصنوعی چیست و کجا واقعاً مفید است؟

دستیار برنامه‌نویسی هوش مصنوعی با درک مسئله، کد و ابزارهای پروژه به توسعه‌دهنده کمک می‌کند؛ اما کیفیت نتیجه به محدوده کار، زمینه کافی و بازبینی انسانی وابسته است.

پوریا افضلی · 8 دقیقه مطالعه

مطالعه مقاله