قابلیت Git Worktree: سلاح مخفی کار با Code Agentها
یه مشکل کلاسیک هست که وسط یه فیچری، باید یه branch دیگه رو چک کنی. و روند git stashو switch و کارتو بکن و برگرد و unstash... خستهکنندهست.
ولی وقتی داری با agentها کار میکنی (Cursor، Claude Code و ...)، این مشکل ۱۰ برابر میشه. Agent میخواد فایلها رو عوض کنه، build بزنه، شاید خرابکاری کنه. نمیخوای working directory اصلیت رو بهم بریزه.
راهحلش میشه git worktree
مفهومش سادهست. پروژهات دو بخش داره: پوشه .git که دیتابیسته (کامیتها، برنچها، تاریخچه) و working directory که فایلهای واقعی هستن. مشکل اینه که فقط یه working directory داری، پس فقط یه branch میتونی checkout داشته باشی.
درواقع worktree یه working directory دوم میسازه که به همون .git وصله. پوشه جدا، branch جدا، ولی همون history.
فقط ۳ تا دستور لازمه:
git worktree add ../project-agent feature-branch
git worktree list
git worktree remove ../project-agent
چرا برای Agent ها عالیه؟ وقتی ClaudeCode یا ابزارهای مشابه یه agent رو توی worktree mode اجرا میکنن، یه worktree جدید میسازن، فایلهاتو کپی میکنن اونجا، agent توی isolation کامل کارشو میکنه، و آخر یه دکمه Apply میدن که merge کنی. Agent میتونه هر کاری بکنه، working directory اصلیت دستنخورده میمونه.
یه نکته مهم هم اینه که node_modules و فایلهای .env منتقل نمیشن چون توی gitignore هستن. هرچی agent ها قویتر میشن، این pattern ضروریتر میشه.
این مقاله رو هم میتونید بخونید
https://www.marcohaber.dev/blog/git-worktrees
@gocasts
Post #770
7.1K