Git을 처음 설치하는 단계에서 시작해 협업, 로컬 서버, CI/CD와 GitOps 운영까지 이어지는 24편입니다. 명령을 외우는 대신 언제 쓰고 무엇이 바뀌는지 확인하는 순서로 구성했어요. Windows 11·Rocky Linux 9·Ubuntu 24.04 중 사용하는 운영체제의 설치 편을 고른 뒤 공통 실습으로 합류하면 됩니다.
개인 변경 관리가 목적이라면 1~13편, 사내 Git 서버가 필요하면 14~16편부터 활용할 수 있습니다. 17편부터 테스트 자동화를 연결하고, 20편 이후에는 Kubernetes를 알고 있는 독자를 대상으로 배포 상태와 복구를 다룹니다.
먼저 준비할 환경
초반에는 Git을 설치할 PC 한 대면 됩니다. 공통 Bash 예제는 Linux 터미널 또는 Windows Git Bash에서 실행합니다. PowerShell 전용 명령은 구분해 표시했습니다. 예시 주소와 이름을 본인 값으로 바꾸며, 실제 비밀번호나 개인 키는 저장소에 넣지 않습니다.
로컬 서버는 기존 서비스와 분리한 Linux VM, CI는 GitHub 또는 Jenkins 실행 환경, GitOps는 폐기 가능한 Kubernetes 클러스터가 필요합니다. 설치 명령을 운영 서버에 연속 실행하는 구성은 이 연재의 실습 환경이 아닙니다.
1단계 · 개념과 운영체제별 설치
- 01 · Git은 언제 쓰는 도구일까: 저장소·커밋·GitOps의 관계
- 02 · Windows 11에 Git 설치하기: PowerShell과 Git Bash
- 03 · Rocky Linux 9에 Git 설치하고 작업 계정 설정하기
- 04 · Ubuntu 24.04에 Git 설치하고 저장소 준비하기
2단계 · 변경 이력과 브랜치
- 05 · 첫 저장소 만들기: add·commit·status·diff를 쓰는 순서
- 06 · 이력 읽는 법: 커밋 그래프·HEAD·diff·bisect
- 07 · 되돌리기 전에 고르는 명령: restore·reset·revert
- 08 · 브랜치 만들고 합치기: switch·merge와 fast-forward
- 09 · 충돌 해결하기: 공통 조상과 3-way merge
3단계 · 원격 협업과 릴리스
- 10 · 원격 저장소 연결하기: clone·fetch·pull·push
- 11 · 팀 브랜치 전략과 Pull Request: merge·rebase의 선택
- 12 · 태그와 릴리스: 배포한 커밋을 찾을 수 있게 만들기
- 13 · 저장소 정리: gitignore·줄바꿈·LFS·비밀 값
4단계 · 로컬 Git 서버와 복원
- 14 · 로컬 Git 서버 만들기: Rocky·Ubuntu의 bare 저장소와 SSH
- 15 · Gitea로 로컬 Git 웹 서버 구축하기: Docker Compose
- 16 · Gitea 백업과 복원: 저장소만 복사하면 빠지는 데이터
5단계 · CI/CD 연결
- 17 · GitHub Actions로 CI 연결하기: 테스트 실패에서 멈추는 흐름
- 18 · Gitea와 Jenkins 연결하기: 저장소 인증·Jenkinsfile·트리거
- 19 · CI 다음의 CD: 승인·산출물 승격·이미지 digest
6단계 · GitOps와 운영
- 20 · GitOps의 네 원칙과 앱·배포 설정 저장소 나누기
- 21 · Argo CD 첫 배포: 설치·AppProject·저장소 인증
- 22 · 변경 감지와 복구: 자동 Sync·selfHeal·prune·Git revert
- 23 · 비밀 값 관리: Secret의 base64와 SOPS·age 암호화
- 24 · Git·CI/CD·GitOps 운영 흐름 완성하기: 장애별 판단과 복구
예제 파일을 받아서 이어서 실습하기
Git·GitOps 예제 ZIP 다운로드에는 Python 코드와 테스트, GitHub Actions, Jenkinsfile, Gitea Compose와 백업 스크립트, Argo CD 정의, 배포 YAML과 로컬 암호화 예제가 들어 있습니다. 실제 비밀번호와 개인 키는 포함하지 않았습니다. 파일별 위치와 준비 조건은 ZIP 안의 README.txt에 설명했습니다.
Python 앱은 Git과 CI를 익히기 위한 예제이고, Kubernetes 배포는 공식 nginx 이미지로 상태 조정을 확인합니다. 두 예제를 실제 앱의 이미지 빌드·배포가 이미 연결된 결과처럼 해석하지 않습니다. 실제 서비스로 확장할 때의 연결 지점은 19편과 24편에서 설명합니다.
확인한 범위와 적용 기준
공식 문서와 릴리스 확인 기준일은 2026년 10월 18일입니다. 실행 결과가 있는 항목과 문서·정적 검토 항목을 구분했습니다. 패키지의 패치 버전과 서비스 화면은 설치 시점에 달라질 수 있습니다.
| 대상 | 실제 확인 범위 |
|---|---|
| Rocky Linux 9 · Git 2.52.0 | 컨테이너에서 패키지 설치, restore·충돌·병합·revert·태그·bare 원격·푸시 거절·rebase·bundle |
| Ubuntu 24.04 · Git 2.43.0 | 같은 Git 시나리오와 Python 정상·오류 입력 테스트, 실패 시 패키징 중단 |
| Gitea 28.1.0 · PostgreSQL 17 | 분리한 Compose에서 웹 설치, 인증한 HTTP clone·push, DB·볼륨 백업과 새 프로젝트 복원 후 파일 일치 확인 |
| SOPS 3.13.3 · age 1.3.2 | 공식 배포 파일 검증과 예제 값의 암호화·복호화 왕복 |
| Windows 11 | 공식 설치·명령 문서 검토. Windows GUI 실행 확인 없음 |
| GitHub Actions · Jenkins | 설정과 명령 검토, 로컬 테스트·ZIP 생성 확인. 실제 호스팅 파이프라인 실행 없음 |
| Kubernetes · Argo CD 3.5.5 | 공식 설치 파일·이미지 digest 확인, YAML 구문·출처/대상 일관성 검사. 실제 클러스터 배포 없음 |
Gitea의 LFS·외부 객체 저장소·첨부파일과 SSH 전송까지 포함한 복원 시험은 별도 환경에서 확인해야 합니다. 예제의 replica와 자원 값은 학습용 시작값이며 성능 측정 결과가 아닙니다. 각 편의 실패 증상과 확인 지점을 자신의 환경에서 대조하며 진행하세요.
함께 읽으면 좋은 글
Jenkins 첫 Pipeline은 컨트롤러와 에이전트, 저장소를 연결하는 과정을 보완합니다. 개별 글의 마지막에는 해당 명령과 설정의 공식 출처를 연결했습니다. 대표 사진은 작업 환경을 설명하는 참고 자료이며, 실습 장비나 실행 결과를 촬영한 증거로 소개하지 않습니다.