From d0eb280e0615ca4aa53b55ba7e81efe35c5c3981 Mon Sep 17 00:00:00 2001 From: choibk Date: Sat, 24 Jan 2026 23:48:31 +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=EA=B0=9C=EB=B0=9C=20=EC=84=9C=EB=B2=84?= =?UTF-8?q?=EC=99=80=20=EC=9A=B4=EC=98=81=20=EC=84=9C=EB=B2=84=EC=9D=98=20?= =?UTF-8?q?=EA=B5=AC=EC=B2=B4=EC=A0=81=EC=9D=B8=20=EC=9E=91=EC=97=85=20?= =?UTF-8?q?=EA=B2=BD=EB=A1=9C=20=EB=AA=85=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/git 운영 규칙.md | 44 ++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/docs/git 운영 규칙.md b/docs/git 운영 규칙.md index 6cf29e9..a4f1d78 100644 --- a/docs/git 운영 규칙.md +++ b/docs/git 운영 규칙.md @@ -29,11 +29,12 @@ ## 2. 개발 및 배포 절차 (개발 PC) -모든 명령어는 프로젝트의 **최상위 루트 폴더**(`smart_ims/`)에서 실행합니다. +개발 작업 및 태그 생성은 아래 경로에서 진행합니다. +* **작업 경로**: `d:\antigravity\smartims` (윈도우 개발 환경 기반) ### STEP 1: 코드 변경 사항 커밋 및 푸시 ```powershell -# [위치: 프로젝트 루트] +# [위치: d:\antigravity\smartims (루트)] git add . git commit -m "릴리즈 준비: v0.3.5 패치" git push origin main @@ -41,7 +42,7 @@ git push origin main ### STEP 2: 어노테이티드 태그(Annotated Tag) 생성 ```powershell -# [위치: 프로젝트 루트] +# [위치: d:\antigravity\smartims (루트)] git tag -a v0.3.5 -m "[PATCH] 시스템 안정화 패치 - 원격 태그 동기화 로직 강화 - API 캐시 방지 타임스탬프 도입" @@ -49,36 +50,37 @@ git tag -a v0.3.5 -m "[PATCH] 시스템 안정화 패치 ### STEP 3: 원격 저장소에 태그 푸시 ```powershell -# [위치: 프로젝트 루트] +# [위치: d:\antigravity\smartims (루트)] git push origin v0.3.5 ``` --- -## 3. 운영 서버 수동 업데이트 방법 (Manual Update) +## 3. 운영 서버 수동 업데이트 방법 (Production Server) -웹 UI 업데이트가 실패하거나 서버에서 직접 제어해야 할 경우 사용합니다. +웹 UI 업데이트가 실패하거나 SSH를 통해 직접 서버에서 제어해야 할 경우 사용합니다. +* **서비스 경로**: `/volume1/web/smartims` (리눅스 운영 환경 기반) ### STEP 1: 원격 정보 동기화 및 체크아웃 -```powershell -# [위치: 프로젝트 루트] -# 1. 태그 정보 강제 업데이트 +```bash +# [위치: /volume1/web/smartims (루트)] +# 1. 태그 정보 강제 업데이트 (원격 저장소와 완벽 동기화) git fetch origin +refs/tags/*:refs/tags/* --force --prune --prune-tags # 2. 대상 버전으로 강제 체크아웃 git checkout -f v0.3.5 ``` -### STEP 2: 프론트엔드 빌드 -```powershell -# [위치: 프로젝트 루트] +### STEP 2: 프론트엔드 빌드 및 의존성 업데이트 +```bash +# [위치: /volume1/web/smartims (루트)] npm install npm run build ``` ### STEP 3: 백엔드 반영 및 서비스 재시작 -```powershell -# [위치: 서버 폴더 (프로젝트루트/server)] +```bash +# [위치: /volume1/web/smartims/server] cd server npm install pm2 reload smartims-api @@ -88,11 +90,11 @@ pm2 reload smartims-api ## 4. 유용한 Git 명령어 레퍼런스 -* **태그 목록 확인**: `git tag -l` (루트 실행) -* **최신 태그 정보 확인**: `git describe --tags --abbrev=0` (루트 실행) -* **원격 태그 강제 덮어쓰기 (수정 시)**: +* **태그 목록 확인**: `git tag -l` (모든 환경의 루트 폴더) +* **최신 태그 정보 확인**: `git describe --tags --abbrev=0` +* **원격 태그 강제 덮어쓰기 (메시지 수정 시)**: ```powershell - # [위치: 프로젝트 루트] + # [위치: 개발 PC 루트] git tag -a v0.3.5 -f -m "수정된 메시지..." git push origin v0.3.5 -f ``` @@ -100,6 +102,6 @@ pm2 reload smartims-api --- ## 💡 주의사항 -1. **실행 위치 확인**: 특히 `pm2` 명령어나 `server` 관련 설정은 반드시 `server` 폴더 내에서 실행하거나 경로를 정확히 지정해야 합니다. -2. **경로 이동**: `cd server`를 통해 폴더를 이동한 후 작업을 마쳤다면, 다시 `cd ..`를 통해 루트로 복귀하는 습관이 중요합니다. -3. **권한**: 운영 서버에서는 가급적 서비스 소유 계정으로 명령어를 실행하세요. +1. **빌드 확인**: 운영 서버에서 수동 업데이트 시 `npm run build` 결과가 `Success`인지 반드시 확인하신 후 서버를 재시작하세요. +2. **경로 이동 주의**: `cd server`를 통해 폴더를 이동하여 작업을 마친 후에는 반드시 `cd ..`를 통해 다시 루트 폴더로 복귀하여 다음 작업에 혼선이 없도록 합니다. +3. **권한 관리**: 운영 서버에서는 반드시 서비스 실행 권한을 가진 계정으로 명령어를 실행해야 `PM2` 프로세스 관리에 문제가 생기지 않습니다.