Git bundle은 어떤 경우에도 가능할까
깃허브를 거치지 않고 깃 브랜치를 옮기는 것은 가능합니다.
다만 “Git 저장소의 이력과 브랜치를 옮긴다”는 범위에서 매우 강력한 방법이지, 컴퓨터의 모든 실행환경까지 통째로 옮기는 방식은 아닙니다.
git bundle은 Git 저장소의 커밋, 브랜치, 태그, 객체 이력을 하나의 파일로 묶습니다. 그래서 인터넷이 안 되는 환경, GitHub를 거치고 싶지 않은 경우, 내부망 서버로 옮길 때 아주 유용합니다.
예를 들어 이런 경우에 잘 맞습니다.
- Windows PC → Linux PC
- 로컬 PC → AWS 서버
- 인터넷 없는 PC → 다른 PC
- GitHub 비공개 저장소를 거치지 않고 직접 전달
- 특정 브랜치만 전달
- 저장소 전체 백업
- 여러 커밋의 역사까지 보존
하지만 주의할 점이 있습니다. bundle은 기본적으로 Git이 추적하는 내용만 옮깁니다.
예를 들어 다음은 자동으로 포함되지 않을 수 있습니다.
venv/
.env
__pycache__/
tmp/
output/
로그파일
DB 파일
서버 설정
Nginx 설정
시스템 패키지
특히 .gitignore에 들어 있는 파일은 대개 bundle에 포함되지 않습니다.
그래서 지금 poem_pod 같은 프로젝트를 옮길 때는 개념적으로 이렇게 생각하시면 됩니다.
Git bundle
↓
소스코드 + 커밋이력 + 브랜치
반면 실제 실행환경은 별도입니다.
Python 버전
venv
pip 패키지
환경변수
폰트
DB
Nginx
서비스 설정
이런 것은 따로 준비해야 할 수 있습니다.
또 한 가지 중요한 점은 커밋하지 않은 수정사항은 bundle에 들어가지 않습니다.
예를 들어:
git status
에서
modified: app.py
처럼 보이는데 아직 git commit을 안 했다면, 그 수정내용은 bundle로 옮겨지지 않습니다.
따라서 안전한 순서는 항상:
git status
git add .
git commit -m "작업 저장"
git bundle create 작업.bundle 브랜치명
입니다.
그리고 bundle은 특정 브랜치만 만들 수도 있고 저장소 전체를 만들 수도 있습니다.
특정 브랜치:
git bundle create new-title-layout.bundle new-title-layout
전체 브랜치와 태그:
git bundle create full-backup.bundle --all
전체 브랜치 번들은 일종의 Git 저장소 전체 이동용 백업 파일처럼 사용할 수 있습니다.

지금처럼 로컬 PC, 골모실, AWS 사이에서 개발하시는 구조라면, bundle은 특히 실험 브랜치를 안전하게 다른 장비로 옮길 때 매우 좋은 방법입니다. GitHub에 공개하거나 push하지 않고도 커밋 이력을 그대로 보존할 수 있기 때문입니다.
'Linux > 네트워크 및 서비스의 활용' 카테고리의 다른 글
| Git에게 변경 범위 알아보기 (1) | 2026.09.08 |
|---|---|
| Github를 거치지 않고 브랜치 복사, bundle (1) | 2026.09.06 |
| hangup과 nohup (0) | 2026.09.05 |
| [GIT] Git에서 추적(track)이란 (2) | 2026.09.01 |
| 라즈베리파이 첫 연결, 호스트명으로 SSH 연결 (4) | 2026.04.03 |