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

در این مقاله
برای کار موازی با عاملهای کدنویسی، به هر وظیفهٔ مستقل یک شاخه و پوشهٔ کاری جدا بدهید و مالک ادغام را مشخص کنید. 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 است و پشتیبانی خودکار محصول از همین گردشکار را فرض نمیکند.
بازبینی منابع: ۱ اکتبر ۲۰۲۶. جلد صحنهای تولیدشده با هوش مصنوعی است و تیم یا مشتری واقعی را نشان نمیدهد.
گفتوگو
تجربهتان را بنویسید یا سؤال بپرسید. نظرات پس از تأیید مدیر منتشر میشوند.
در حال بارگذاری…
برای ادامهٔ مطالعه
مرزهای دسترسی عامل کدنویسی را چطور تعیین کنیم؟
مجوز عامل باید از ریسک همان وظیفه پیروی کند: ابزار کمتر، Scope کوچکتر، تأیید پیش از عمل حساس و مشاهدهپذیری کامل.
پوریا افضلی · 8 دقیقه مطالعه
مطالعه مقالهچکلیست بازبینی کد تولیدشده با هوش مصنوعی
بازبینی را از نیت تغییر و محدوده diff شروع کنید، سپس رفتار، امنیت، وابستگیها و امکان بازگشت را با شواهد بررسی کنید.
پوریا افضلی · 8 دقیقه مطالعه
مطالعه مقالهبازبینی migration تولیدشده با هوش مصنوعی؛ حفظ داده و مسیر بازیابی
مهاجرت را روی دادهٔ موجود و نسخههای همزمان برنامه بسنجید. SQL، backfill، قفلها و بازیابی باید پیش از انتشار بررسی شوند؛ بیلد سبز کافی نیست.
پوریا افضلی · 5 دقیقه مطالعه
مطالعه مقالهچطور کانتکست مخزن را برای عامل کدنویسی آماده کنیم؟
یک بستهٔ کوچک شامل هدف، مسیرهای معتبر، نسخهٔ مبنا، محدودیتها و شواهد تست بسازید؛ سپس با هر تغییر مهم، اعتبار زمینه را دوباره بررسی کنید.
پوریا افضلی · 5 دقیقه مطالعه
مطالعه مقالهدستیار کدنویسی، عامل کدنویسی و تکمیل خودکار چه تفاوتی دارند؟
تکمیل خودکار پیشنهاد کوتاه میدهد، دستیار در گفتوگو و بررسی کد کمک میکند و عامل میتواند یک فرایند چندمرحلهای را با ابزارها پیش ببرد؛ تفاوت اصلی در دامنه اختیار است.
پوریا افضلی · 7 دقیقه مطالعه
مطالعه مقالهدستیار برنامهنویسی هوش مصنوعی چیست و کجا واقعاً مفید است؟
دستیار برنامهنویسی هوش مصنوعی با درک مسئله، کد و ابزارهای پروژه به توسعهدهنده کمک میکند؛ اما کیفیت نتیجه به محدوده کار، زمینه کافی و بازبینی انسانی وابسته است.
پوریا افضلی · 8 دقیقه مطالعه
مطالعه مقاله




