이전 글목록 보기다음 글
git•2026-09-14T09:18:28.529Z

USB에 Git Push 저장소 만들기

Anya2_Forger profileAnya2_Forger
edited-Git-logo.png

USB나 외장하드를 Git Push 저장소처럼 사용해 보기

가장 간단한 구조

예를 들어 USB가:

/home/pion79/usb

에 마운트되어 있고, 여기에 Git 저장소를 만들었다고 하면:

내 컴퓨터
  ↓ git push
USB / 외장하드
  └── myproject.git

이런 식으로 사용할 수 있습니다.


1. USB에 Bare Repository 만들기

USB에서:

cd /home/pion79/usb
mkdir myproject.git
cd myproject.git

git init --bare

여기서 중요한 것이 **--bare**입니다.

일반 Git 저장소와 달리 작업 파일을 가지고 있지 않고, git push를 받기 위한 저장소입니다.

확인 : git 저장소에 프로젝트 저장소 확인하기

cd ~/myproject.git

pwd
/home/pion79/usb/myproject.git


2. 내 프로젝트에서 작업

  1. 내 컴퓨터의 프로젝트 디렉터리에서 .git 만들기

cd ~/myproject
git init
touch a.txt
git add .
git commit -m "first commit"
git branch -M main

  1. remote를 추가함

cd ~/myproject
git remote add usb /home/pion79/usb/myproject.git

여기서 ~ add usb ~ "usb"는 별칭과 origin과 같은 기능임

확인:

git remote -v

그러면 대략:

usb    /home/pion79/usb/myproject.git (fetch)
usb    /home/pion79/usb/myproject.git (push)

3. Branch 맞추기 : USB 저장소에서 (선택)

  1. USB 저장소 브랜치가 master라면, 이름 자체를 main으로 변경

git branch -m master main

.

  1. 브랜치의 심볼릭을 변경 : 먼저 push를 하고서 브랜치 명을 바꿀 경우 심볼릭도 변경해야 하는 경우가 있음.

git symbolic-ref HEAD refs/heads/main

4. USB로 push

git push usb main

그러면 GitHub가 아니라 USB에 있는 Git 저장소로 코드가 저장됩니다.


5. 소스 코드 배포

: push하면 서버의 /var/www/myapp 같은 실제 디렉토리에 소스 코드가 바로 배포되게 하고 싶다는 것이라면, 한 단계 더 설정하는 게 좋습니다.

구조를 이렇게 만듭니다.

내 PC
  │
  │ git push server main
  ▼
서버
/srv/git/myapp.git        ← bare repository
  │
  │ post-receive hook
  ▼
/var/www/myapp            ← 실제 실행되는 소스

서버에서 hook을 만듭니다.

nano /srv/git/myapp.git/hooks/post-receive

내용:

#!/bin/sh

git --work-tree=/var/www/myapp \
    --git-dir=/srv/git/myapp.git \
    checkout -f main

그리고 실행 권한을 줍니다.

chmod +x /srv/git/myapp.git/hooks/post-receive

/var/www/myapp도 준비합니다.

mkdir -p /var/www/myapp

이후 로컬에서:

git push server main

하면 자동으로:

git push
   ↓
/srv/git/myapp.git
   ↓
post-receive 실행
   ↓
/var/www/myapp 에 최신 main 체크아웃

즉, 간단한 개인 서버라면 이것만으로도 git push 기반 자동 배포 시스템을 만들 수 있습니다.

다만 /var/www/myapp에서 Docker Compose, Node.js, Spring, Django 같은 서비스를 실제로 돌린다면 hook에서 docker compose up -d --build나 서비스 재시작까지 연결하는 구조를 추천합니다.

.

Git push → 서버 자동 배포 → Docker 재시작까지 완성된 설정을.. 이후에 .....

Comments

Log in to comment

Loading comments...
이전 글목록 보기다음 글

당신의 이야기를 기다리고 있습니다