Git Worktree
עודכן לאחרונה
git worktree מאפשר למאגר אחד להחזיק כמה תיקיות עבודה בו זמנית, כל אחת על ענף אחר. במקום לשמור את העבודה עם stash כדי להחליף ענף, פותחים את הענף השני בתיקייה נפרדת: בודקים PR, מריצים hotfix או בונים ענף אחד בזמן שעורכים ענף אחר, וכולם חולקים את אותה היסטוריית .git.
נסו את הפקודות האלה בעורך האונליין של הטרמינל: shell אמיתי בדפדפן, בלי להתקין כלום.
תחביר
| Command | What it does |
|---|---|
git worktree add ../hotfix hotfix | פותח את hotfix בתיקייה סמוכה |
git worktree add -b new ../new | יוצר ענף ו-worktree עבורו |
git worktree list | מציג את כל ה-worktrees והענפים שלהם |
git worktree remove ../hotfix | מסיר worktree |
git worktree prune | מנקה רשומות worktree שאינן בתוקף |
דוגמה מעשית
תיקון באג ב-main בלי להפריע לענף הפיצ'ר שלכם.
| Step | Command | Result |
|---|---|---|
| 1 | git worktree add ../fix main | main פתוח ב-../fix |
| 2 | תקנו ובצעו קומיט ב-../fix | ה-hotfix הושלם ב-main |
| 3 | git worktree remove ../fix | ניקוי; ענף הפיצ'ר לא נפגע |
שאלות נפוצות על git worktree
מה זה git worktree?
.git אחת, כך שאין צורך ב-stash או ב-clone כדי לעבוד על שני ענפים במקביל.איך מוסיפים worktree?
git worktree add <path> <branch>, לדוגמה git worktree add ../hotfix hotfix. Git פותח את הענף הזה בתיקייה החדשה. כדי ליצור ענף חדש באותו זמן, השתמשו ב-git worktree add -b <newbranch> <path>.מתי כדאי להשתמש ב-worktree במקום להחליף ענף?
איך מסירים worktree?
git worktree remove <path>. אם התיקייה נמחקה ידנית, הריצו git worktree prune כדי לנקות את הרישום שאינו בתוקף. אי אפשר להסיר את ה-worktree הראשי (תיקיית המאגר המקורית), רק את הנוספים שהוספתם.אפשר לתרגל את זה אונליין?
git worktree ב-shell אמיתי בדפדפן, בלי להתקין כלום. קורס ה-Git האינטראקטיבי והחינמי של Coddy מכסה גם תהליכי עבודה עם ענפים צעד אחר צעד.