נבדק עם גיטלאב (Gitlab). אמור לעבוד גם עם גיטהאב (Github) או כל ספק אחר.
הקדמה
זה נשמע די ברור מאליו, לא? אמור להיות די פשוט לגבות מאגר קוד עם כל הענפים (Branches) למחשב המקומי. יש גם תשובות ב- Stack Overflow.
אבל גם אני עשיתי חיפוש והייתי צריך לעבור כמה תוצאות ולשנות מילות חיפוש עד שמצאתי דרך לגבות מאגר מרוחק למחשב המקומי כולל כל הענפים. בתקווה שהפוסט יעזור גם לכם.
תהליך הגיבוי
התהליך מבוסס על התשובה הזו. בחלונית מטה כדאי לגלול ימינה כדי לראות את הכל.
git clone <your repo>
git branch -r | grep -v '\->' | sed "s,\x1B\[[0-9;]*[a-zA-Z],,g" | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all
הקוד הנ"ל משכפל את המאגר המיועד למחשב המקומי ואז מגדיר שהמאגר המקומי עוקב אחרי כל ענף שקיים במרוחק. בצורה הזו בקשת עדכון מול המרוחק תמשוך גם את כל הענפים.
כדי לעבור, במאגר המקומי, בין ענף לענף צריך להשתמש בפקודה git switch:
git switch <branch_name>