Synology에서 Git 서버를 운용하는 방법은 여러가지가 있다.
본 문서에서 다루는 방법은 가장 단순하게 SSH를 기반으로 운영하는 방법인데,
Docker를 이용하여 GUI로 운영하는 다른 방법들도 존재한다.
SSH 활성화 시 기본 포트(22) 말고 다른 포트를 사용하는 것이 보안 측면에서 안전
조직에서 운용 시 gitusers 같은 그룹을 만들고,
사용자들을 그룹에 넣은 뒤 공유 폴더에 그룹에 대한 권한 부여하면 편리
Bare Git Repository(Bare Git 저장소)는 작업 디렉터리가 없는 순수한 저장소를 의미한다.
이 개념을 이해하려면 저장소의 구조를 이해야하는데,
git init을 실행한 뒤의 저장소 구조 예시는 다음과 같다.
myproject/
├── .git/ ← 실제 Git 데이터 저장소
├── src/
├── README.md
└── ...
여기서 .git/ 폴더 자체만 만들어 준비한 것이 Bare Git 저장소다.
Bare 저장소는 다음의 예시 같이 생겼다.
myproject.git/
├── HEAD
├── config
├── objects/
├── refs/
└── ...
시놀로지 NAS에서 이 Bare Git 저장소를 생성하는 절차는 다음과 같다.
Step 1. SSH로 NAS에 접속(로컬 PC에서)
ssh ${사용자 이름}@${주소}
# 예: ssh dev@192.168.0.10 -p 22
Step 2. 저장소 .git 디렉터리 생성
예: my_project.git
Step 3. 저장소 Bare 초기화
저장소 디렉토리에 진입해서 다음의 명령어로 초기화
git init --bare --shared=group
일단 클라이언트에서 작업중인 디렉터리에 대해 `git init과 최초 커밋이 완료되어 있어야 한다.
이후 다음의 명령어로 내가 생성한 Bare Git 저장소를 원격 저장소로 등록할 수 있다.
git remote add origin ssh://${사용자 이름}@${주소}:${Bare Git 저장소의 경로}
# 예: