
git commit שולח את כל האינדקס, לא רק את הנתיבים שהוספתם
מנהל הטכנולוגיה של Vodou, צ'אד פריסט, מתאר שני מקרים שבהם סוכנים השלימו כמה נתיבים והקומיט שלח עשרות קבצים: האינדקס ב-Git הוא אחד לכל worktree, וכל הסוכנים קוראים וכותבים בו.
מנהל הטכנולוגיה של Vodou, צ'אד פריסט, תיאר ב-dev.to שני מקרים שבהם סוכנים שעבדו באותו checkout קימטו זה את השינויים של זה.
שמונה נתיבים נוספו, עשרים קבצים שונו
ב-9 בספטמבר 2026 השלים סוכן במאגר שלו שמונה נתיבים לאינדקס, כולם בתיקיית ה-gateway בשם MCP-servers/Vodou-Console/, והריץ git commit. Git השיב: "20 files changed". שנים עשר הקבצים האחרים היו שייכים לסוכן אחר באותו checkout, שכבר החזיק באינדקס שלושה עשר קבצים, בהם fixture לבדיקות באורך 466 שורות וחלק ניכר מהמנוע.
זו לא הייתה הפעם הראשונה. ב-28 ביולי 2026 סוכן השלים שלושה נתיבים עבור תכונת lease, וסוכן מקביל הריץ git add בין ה-add ל-commit שלו: הקומיט סחף פנימה מקטע של 185 שורות מה-daemon של המנוע, ארבעה קבצים תחת MCP-servers/brain/ ו-scripts/build-server-bundle.sh.
למה הוספת נתיבים מפורשים לא מספיקה
הכלל שלו אז היה להוסיף רק נתיבים מפורשים ולעולם לא להריץ git add -A. הוא מספר שסמך על הכלל כמעט חודש וטעה: הכלל מסדר את הבחירה של שחקן אחד, אך לא משנה את מה שהקומיט קורא.
git commit ללא ארגומנטים לא מבצע קומיט למה שהוספתם אלא לאינדקס. אינדקס יש אחד לכל worktree, בקובץ .git/index, וכל סוכן באותו worktree קורא וכותב לאותו קובץ. לכן git add בודד הוא כתיבה אחת לתוך חוצץ שגם תהליכים אחרים כותבים אליו. ביולי סוכן אחר כתב בתוך חלון הזמן שלו; בספטמבר העבודה של האחר כבר הייתה באינדקס לפני שהחל.
שני תיקונים וגבולות הבידוד
בלי Git מדובר בכל אזור staging משותף ומשתנה ששלב הפרסום שלו מצלם את כולו במקום את הקלטים המוצהרים של הפועל. פריסט מזהה זאת, בין היתר, בסוכני קוד מקבילים שחולקים worktree אחד.
התיקון הראשון הוא git commit --only עם רשימת נתיבים, שמבצע קומיט לגרסת ה-working tree של אותם נתיבים בלבד. כששני סוכנים ערכו אותו קובץ זה לא מספיק, ולכן עבר לאינדקס פרטי: GIT_INDEX_FILE=/tmp/agent-a.index, ואז git read-tree HEAD ו-git apply --cached. worktree נפרד לכל סוכן הוא העצה המקובלת, אך היא לא התאימה למאגר שבו הסוכנים עורכים מערכת פעילה אחת וצריכים לראות שינויים של אחרים בזמן אמת.
אחרי קומיט עם אינדקס פרטי, git status מתיישן ומדווח על מחיקת קבצים שכבר קיימים ב-HEAD, ולכן הוא בודק עם git cat-file -e HEAD:path. המסקנה לכל מערכת עם יותר מכותב אחד: להסתכל על מה שקורא שלב הפרסום, ולא על מה שהוספתם.
SiTech — פיתוח אתרים בכוח ה-AI
אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.