마루옵스서버 · 네트워크 · AI 기술 노트

소개문의

[Git·GitOps 01] Git은 언제 쓰는 도구일까: 저장소·커밋·GitOps의 관계

노트북과 모니터가 놓인 책상

참고 사진 · 노트북과 모니터가 놓인 책상 · 사진: Norbert Levajsics levajsics / 원본 / CC0 · 목록용 크기 조정

설정 파일을 고치기 전에 nginx.conf.old, nginx.conf.final을 복사해 둔 적이 있다면 Git을 시작할 이유는 충분합니다. 파일 이름에 버전을 붙이는 대신, 변경한 내용과 이유를 하나의 기록으로 남기는 도구예요. 프로그램 소스뿐 아니라 Ansible, Kubernetes YAML, 운영 문서에도 사용할 수 있습니다.

이 연재는 Windows 11, Rocky Linux 9, Ubuntu 24.04에서 시작합니다. 앞에서는 개인 저장소를 만들고, 뒤에서는 팀의 변경이 테스트와 배포를 거쳐 운영에 도달하는 과정을 연결합니다. 처음부터 서버나 Kubernetes가 필요한 것은 아닙니다.

Git·GitOps 전체 연재 · 01 / 24

이 글의 목차

파일을 저장하는 것과 변경을 기록하는 것

편집기의 저장은 현재 파일을 디스크에 쓰는 동작입니다. Git의 커밋(commit)은 그 시점에 선택한 파일 상태를 메시지와 함께 저장소 이력에 남깁니다. 커밋에는 부모 커밋과 작성 정보도 들어가므로, 이후에 무엇이 달라졌는지 비교할 수 있습니다.

예를 들어 타임아웃을 30초에서 60초로 바꾸었다면 파일만 저장해도 서비스에는 적용할 수 있어요. 다만 한 달 뒤 변경 이유를 설명하려면 별도 기록이 필요합니다. Increase timeout for slow upstream처럼 이유를 담은 커밋은 그 판단을 설정과 함께 보관합니다.

처음에는 세 공간만 구분한다

용어뜻언제 확인하나
작업 트리지금 편집하는 파일들파일을 고친 직후
인덱스·스테이징 영역다음 커밋에 담을 상태커밋에 포함할 변경을 고를 때
저장소커밋과 객체·참조를 보관하는 곳과거 내용과 비교할 때
HEAD현재 체크아웃한 위치를 나타내는 참조어느 브랜치에서 작업 중인지 볼 때

일반적인 로컬 저장소는 프로젝트 안의 .git에 이력을 보관합니다. 이 폴더를 지우면 작업 파일이 남아 있더라도 그 로컬 이력과 설정을 잃을 수 있습니다. Git 저장소를 만들 때 홈 폴더 전체보다 실제 프로젝트 폴더를 선택하는 이유이기도 합니다.

파일 편집 → git add → git commit
작업 트리    인덱스     로컬 이력

add 뒤에 파일을 다시 수정해도 인덱스에 담긴 내용이 자동 갱신되지는 않습니다. 커밋 직전에 git diff --staged를 확인하면, 지금 보이는 파일과 실제로 기록할 내용이 다른 실수를 줄일 수 있어요. 이 차이는 5편에서 직접 확인합니다.

Git·GitHub·GitOps는 어디에 놓이는가

Git은 내 PC에서 동작하는 버전 관리 도구입니다. GitHub와 Gitea는 Git 저장소를 공유하고 리뷰와 접근 권한을 관리하는 서비스입니다. 인터넷에 연결하지 않아도 로컬 커밋과 브랜치 작업은 가능합니다.

GitOps는 운영에 필요한 상태를 버전으로 기록하고, 에이전트가 그 선언을 가져와 실제 시스템과 계속 맞추는 운영 방식입니다. 단순히 YAML을 Git에 올리거나 CI에서 kubectl apply를 실행하는 것만으로 전체 원칙이 충족되지는 않습니다. 후반부에서는 이 차이를 Argo CD의 조정 과정으로 설명합니다.

상황시작할 지점
혼자 설정 파일과 문서를 관리로컬 저장소와 커밋
둘 이상이 변경을 검토원격 저장소와 Pull Request
수정할 때마다 테스트 필요CI 파이프라인
Kubernetes 상태를 이력과 맞춰 운영GitOps 컨트롤러

Git을 백업으로만 생각하면 빠지는 부분

추적하지 않은 파일, 데이터베이스, 서버의 실행 상태는 커밋만으로 복구되지 않습니다. 원격 저장소로 푸시하지 않은 커밋도 내 디스크가 사라지면 함께 잃을 수 있어요. Git 이력, 서버 백업, 데이터 백업의 범위를 따로 정해야 합니다.

반대로 비밀번호와 개인 키를 커밋하면 나중에 파일을 삭제해도 이전 이력에는 남을 수 있습니다. 실습에서는 예제 값만 쓰고, 실제 비밀 값은 처음부터 저장소 밖에 둡니다. 유출 후에는 이력 정리보다 키 폐기와 재발급을 먼저 진행합니다.

자신의 운영체제부터 선택한다

Windows는 2편, Rocky는 3편, Ubuntu는 4편에서 설치합니다. 세 편을 전부 따라 할 필요는 없어요. 설치 후 5편의 공통 실습으로 합류하면 됩니다. 공통 Bash 예제는 Linux 터미널 또는 Windows의 Git Bash에서 실행하며, PowerShell 전용 예제는 따로 표시합니다.

용어는 Git 공식 용어집, GitOps의 범위는 OpenGitOps 원칙을 기준으로 정리했습니다. 환경과 실제 확인 범위, 전체 파일 묶음은 연재 안내에 모았습니다.

다음 글 · [Git·GitOps 02] Windows 11에 Git 설치하기: PowerShell과 Git Bash · 연재 목록과 예제 파일

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

닉네임·이메일·댓글 내용·IP 주소·브라우저 정보는 댓글 게시 및 관리에 사용됩니다. 이메일과 접속 정보는 공개 댓글에 표시하지 않습니다. 개인정보 요청은 운영자 이메일로 보내 주세요. 개인정보처리방침