ตัวนี้เป็น shell script ไว้ branch ใน sub folder เพราะว่า Workspace เดียวกันมีแบ่ง folder ย่อย ๆ จะมาหาว่า jira รหัสนี้มันอยู่ที่ไหนบ้างก็เสียเวลาไล่ ../, cd ไป ๆ มา ๆ เลยทำตัวค้นหาให้มัน search ให้ไปเลยจะได้จบ ๆ
- ไปที่ Workspace ที่เก็บ git folder ไว้ เช่น
cd /Users/Shared/Gits/phunsanit
- สร้างไฟล์
touch git-find_branch-all.sh
- ให้สิทธิ์
chmod +x git-find_branch-all.sh
- เปิดไฟล์มาแก้
nano git-find_branch-all.sh
- แล้วใส่เนื้อหาตามตัวอย่าง
#!/bin/bash
# รับค่า Keyword จาก Argument
SEARCH_TERM=$1
if [ -z "$SEARCH_TERM" ]; then
echo "Usage: $0 <branch_keyword>"
exit 1
fi
echo "Searching for branches containing: '$SEARCH_TERM'"
for dir in */; do
# ตรวจสอบว่าเป็น Git Repo หรือไม่
if [ -d "$dir/.git" ]; then
echo "------------------------------------------"
echo "Folder: $dir"
(
cd "$dir" || exit
# อัปเดตข้อมูลจาก remote
git fetch --all --prune > /dev/null 2>&1
# ค้นหาทั้ง Local และ Remote (-a) และไม่สนตัวพิมพ์เล็กใหญ่ (grep -i)
MATCHES=$(git branch -a | grep -i "$SEARCH_TERM" | sed 's/^[[:space:]]*//')
if [ -z "$MATCHES" ]; then
echo "Result: Not found."
else
echo "Found:"
# แสดงผลแบบสีเขียวเพื่อให้สังเกตง่าย
echo -e "\033[0;32m$MATCHES\033[0m"
fi
)
fi
done
echo "------------------------------------------"
echo "Search complete."
ใช้โดยการเรียก ชื่อไฟล์ ตามด้วยคำที่ต้องการค้นหา เช่น
./git-find_branch-all.sh pitt
อ่านเพิ่มเติม