ตัวนี้เป็น shell script ไว้ checkout branch ใน sub folder เพราะว่า Workspace เดียวกันมีแบ่ง folder ย่อย ๆ โดยมี branch ชื่อเหมือน ๆ กัน develop, main, uat ที่อาจจะเปลี่ยนสลับ ไป สลับมาบ่อย ๆ หรือบางที่ก็ต้อง reset กลับไป กลับมา ใช้ force ทิ้งที่ทำไว้ออกไป
- ไปที่ Workspace ที่เก็บ git folder ไว้ เช่น
cd /Users/Shared/Gits/phunsanit - สร้างไฟล์
touchgit-checkout-all.sh - ให้สิทธิ์
chmod +x git-checkout-all.sh - เปิดไฟล์มาแก้
nano git-checkout-all.sh - แล้วใส่เนื้อหาตามตัวอย่าง
#!/bin/bash # รับค่าจาก Argument
TARGET_BRANCH=${1:-"develop"}
# เช็คว่า Argument ที่สองเป็น -f หรือ force หรือไม่
if [[ "$2" == "-f" || "$2" == "force" ]]; then FORCE_MODE=true
else FORCE_MODE=false
fi echo -e "Targeting branch: \033[1;34m$TARGET_BRANCH\033[0m"
if [ "$FORCE_MODE" = true ]; then echo -e "\033[0;31m⚠️ FORCE MODE ENABLED (-f) \033[0m"
fi for dir in */; do if [ -d "$dir/.git" ]; then echo "------------------------------------------" echo "Checking: $dir" fi
done echo "------------------------------------------"
echo "Done!"
เรียกใช้โดยคำสั่ง ระบุ branch./git-checkout-all.sh develop
หรือจะ force โดย./git-checkout-all.sh develop -f
อ่านเพิ่มเติม