From c2e0a7804aa2501f2cb36a1dbf4510b7e786b102 Mon Sep 17 00:00:00 2001 From: choibk Date: Sat, 24 Jan 2026 23:47:10 +0900 Subject: [PATCH] =?UTF-8?q?=EB=AC=B8=EC=84=9C=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8:=20=EB=AA=85=EB=A0=B9=EC=96=B4=20=EC=8B=A4?= =?UTF-8?q?=ED=96=89=20=EC=9C=84=EC=B9=98(Root/Server)=20=EB=AA=85?= =?UTF-8?q?=EC=8B=9C=20=EB=B0=8F=20=EA=B0=80=EC=9D=B4=EB=93=9C=20=EB=B3=B4?= =?UTF-8?q?=EA=B0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/git 운영 규칙.md | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/docs/git 운영 규칙.md b/docs/git 운영 규칙.md index db7f379..6cf29e9 100644 --- a/docs/git 운영 규칙.md +++ b/docs/git 운영 규칙.md @@ -27,18 +27,21 @@ --- -## 2. 개발 및 배포 절차 (Local → Remote) +## 2. 개발 및 배포 절차 (개발 PC) + +모든 명령어는 프로젝트의 **최상위 루트 폴더**(`smart_ims/`)에서 실행합니다. ### STEP 1: 코드 변경 사항 커밋 및 푸시 ```powershell +# [위치: 프로젝트 루트] git add . git commit -m "릴리즈 준비: v0.3.5 패치" git push origin main ``` ### STEP 2: 어노테이티드 태그(Annotated Tag) 생성 -시스템 엔진이 메시지를 읽으려면 반드시 `-a` 옵션을 사용해야 합니다. ```powershell +# [위치: 프로젝트 루트] git tag -a v0.3.5 -m "[PATCH] 시스템 안정화 패치 - 원격 태그 동기화 로직 강화 - API 캐시 방지 타임스탬프 도입" @@ -46,6 +49,7 @@ git tag -a v0.3.5 -m "[PATCH] 시스템 안정화 패치 ### STEP 3: 원격 저장소에 태그 푸시 ```powershell +# [위치: 프로젝트 루트] git push origin v0.3.5 ``` @@ -53,28 +57,28 @@ git push origin v0.3.5 ## 3. 운영 서버 수동 업데이트 방법 (Manual Update) -웹 UI의 자동 업데이트가 불가능하거나 직접 서버에서 제어해야 할 경우 아래 명령어를 순서대로 실행합니다. +웹 UI 업데이트가 실패하거나 서버에서 직접 제어해야 할 경우 사용합니다. -### STEP 1: 최신 태그 정보 강제 동기화 -로컬 태그 캐시와 원격 저장소의 실제 태그를 일치시킵니다. +### STEP 1: 원격 정보 동기화 및 체크아웃 ```powershell +# [위치: 프로젝트 루트] +# 1. 태그 정보 강제 업데이트 git fetch origin +refs/tags/*:refs/tags/* --force --prune --prune-tags -``` -### STEP 2: 대상 버전으로 체크아웃 -```powershell -# 모든 변경사항을 무시하고 강제로 특정 태그 버전으로 전환 +# 2. 대상 버전으로 강제 체크아웃 git checkout -f v0.3.5 ``` -### STEP 3: 의존성 설치 및 빌드 (Root 경로) +### STEP 2: 프론트엔드 빌드 ```powershell +# [위치: 프로젝트 루트] npm install npm run build ``` -### STEP 4: 서버 모듈 의존성 설치 및 재시작 (Server 경로) +### STEP 3: 백엔드 반영 및 서비스 재시작 ```powershell +# [위치: 서버 폴더 (프로젝트루트/server)] cd server npm install pm2 reload smartims-api @@ -84,10 +88,11 @@ pm2 reload smartims-api ## 4. 유용한 Git 명령어 레퍼런스 -* **태그 목록 확인**: `git tag -l` -* **최신 태그 정보 확인**: `git describe --tags --abbrev=0` +* **태그 목록 확인**: `git tag -l` (루트 실행) +* **최신 태그 정보 확인**: `git describe --tags --abbrev=0` (루트 실행) * **원격 태그 강제 덮어쓰기 (수정 시)**: ```powershell + # [위치: 프로젝트 루트] git tag -a v0.3.5 -f -m "수정된 메시지..." git push origin v0.3.5 -f ``` @@ -95,6 +100,6 @@ pm2 reload smartims-api --- ## 💡 주의사항 -1. **빌드 확인**: 운영 서버에서 수동 업데이트 시 `npm run build` 과정에서 에러가 없는지 반드시 확인해야 합니다. -2. **권한 차이**: 수동 업데이트 시 파일 권한 문제가 발생할 수 있으므로 가급적 서비스 실행 계정(예: `sokuree`)으로 진행하세요. -3. **No-Cache**: 업데이트 후 브라우저에 즉시 반영되지 않으면 서버의 `pm2 reload`가 정상적으로 수행되었는지 확인하세요. +1. **실행 위치 확인**: 특히 `pm2` 명령어나 `server` 관련 설정은 반드시 `server` 폴더 내에서 실행하거나 경로를 정확히 지정해야 합니다. +2. **경로 이동**: `cd server`를 통해 폴더를 이동한 후 작업을 마쳤다면, 다시 `cd ..`를 통해 루트로 복귀하는 습관이 중요합니다. +3. **권한**: 운영 서버에서는 가급적 서비스 소유 계정으로 명령어를 실행하세요.