#!/bin/bash # Git 변경사항 커밋 및 푸시 git add . git commit -am "auto commit" current_branch=$(git branch --show-current) git push origin $current_branch # 마스터 브랜치와 병합 여부 확인 echo "You are currently on branch: $current_branch" echo "Would you like to merge the current branch with master? (Y/N) [Y]" # 10초 타이머 설정 TIMEOUT=10 REPLY="" # 카운트다운 타이머와 함께 입력 받기 read -t $TIMEOUT REPLY & # 백그라운드에서 read 실행 read_pid=$! # read 프로세스의 PID 저장 while [ $TIMEOUT -gt 0 ] && ps -p $read_pid > /dev/null; do echo -ne "\rWaiting for input... ($TIMEOUT seconds remaining)" sleep 1 ((TIMEOUT--)) done # 남은 read 프로세스 정리 if ps -p $read_pid > /dev/null; then kill $read_pid 2>/dev/null fi echo # 새 줄 추가 # 입력이 없으면 Y로 설정 proceed_merge=${REPLY:-Y} echo "Selected option: $proceed_merge" if [ "$proceed_merge" == "Y" ] || [ "$proceed_merge" == "y" ]; then # 마스터 브랜치로 전환 및 업데이트 git checkout master git pull origin master # 현재 브랜치를 마스터에 병합 git merge --no-edit $current_branch # 병합 결과 푸시 git push origin master # 원래 브랜치로 돌아가기 git checkout $current_branch fi # 새로운 브랜치 생성 # 현재 날짜를 YYYYMMDD 형식으로 가져오기 current_date=$(date +'%Y%m%d') # 브랜치 이름에서 날짜 부분 추출 branch_date=${current_branch:1:8} # 현재 날짜와 브랜치 날짜가 같으면 뒤의 2자리 숫자를 증가시킴 if [ "$branch_date" == "$current_date" ]; then # 브랜치 이름에서 뒤의 2자리 숫자 추출 branch_number=${current_branch:9:2} # 숫자를 10진수로 변환하고 1 증가시킴 branch_number=$((10#$branch_number + 1)) else # 날짜가 다르면 01부터 시작 branch_number=1 fi # 사용 가능한 브랜치 이름 찾기 while true; do # 2자리 숫자로 포맷팅 formatted_number=$(printf "%02d" $branch_number) new_branch="V${current_date}${formatted_number}" # 로컬과 원격에 해당 이름의 브랜치가 존재하는지 확인 if ! git show-ref --quiet refs/heads/$new_branch && ! git ls-remote --exit-code --heads origin $new_branch > /dev/null 2>&1; then break fi # 존재한다면 숫자 증가 branch_number=$((branch_number + 1)) done # 새로운 브랜치 생성 git checkout -b $new_branch # 새로운 브랜치 푸시 git push origin $new_branch # 변경 사항 확인 git status