ป้ายกำกับ: Update

GIT: find branch in all sub folderGIT: find branch in all sub folder

ตัวนี้เป็น shell script ไว้ branch ใน sub folder เพราะว่า Workspace เดียวกันมีแบ่ง folder ย่อย ๆ จะมาหาว่า jira รหัสนี้มันอยู่ที่ไหนบ้างก็เสียเวลาไล่ ../, cd ไป ๆ มา ๆ เลยทำตัวค้นหาให้มัน search ให้ไปเลยจะได้จบ ๆ

  1. ไปที่ Workspace ที่เก็บ git folder ไว้ เช่น
    cd /Users/Shared/Gits/phunsanit
  2. สร้างไฟล์
    touch git-find_branch-all.sh
  3. ให้สิทธิ์
    chmod +x git-find_branch-all.sh
  4. เปิดไฟล์มาแก้
    nano git-find_branch-all.sh
  5. แล้วใส่เนื้อหาตามตัวอย่าง
#!/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

อ่านเพิ่มเติม