커밋

게임에서 어려운 보스전에 들어가기 직전, 실패해도 언제든 되돌아올 수 있게 눌러두는 '세이브(저장) 포인트'예요.

정의 커밋은 깃(Git, 코드 버전 관리 프로그램)에서 작업한 내용의 변경 사항을 영구적으로 기록하고 하나의 '스냅샷(특정 순간의 사진)'으로 남기는 일이에요. 언제, 누가, 무엇을 왜 바꿨는지에 대한 메모와 함께 저장되므로 나중에 언제든 이 시점으로 작업을 되돌릴 수 있어요.

원할 때 언제든 되돌아가는 세이브 포인트

문서를 작성하다가 실수로 중요한 내용을 지우거나 컴퓨터가 꺼져서 눈앞이 캄캄했던 적이 있으실 거예요. 보통 우리는 '최종.hwp', '진짜_최종.hwp', '진짜_마지막_수정.hwp'처럼 파일을 수없이 복사해서 이름을 바꾸곤 해요. 하지만 파일이 수십 개로 늘어나면 도대체 어디가 어떻게 바뀌었는지 알아보기 어려워져요.

커밋은 이런 번거로운 파일 복사 없이 작업 파일의 특정 순간을 타임머신의 착륙 지점처럼 찰칵 찍어 남기는 기능이에요. 작업하던 전체 파일의 상태를 스냅샷으로 남기면서 동시에 무엇을 고쳤는지 기록을 남겨두죠.

이렇게 차곡차곡 커밋을 쌓아두면 코드가 망가지거나 오류가 생겨도 두려워할 필요가 없어요. 과거에 잘 작동하던 특정 커밋 시점으로 깔끔하게 되돌아갈 수 있기 때문이에요.

커밋의 개념과 과거 시점 복구 과정 과거 시점으로 복구 C1 초기 세팅 C2 로그인 기능 C3 오류 수정

사진을 찍기 전에 카메라 앞에 모이는 과정

커밋을 할 때는 파일 하나를 수정하자마자 바로 기록되는 것이 아니에요. 먼저 수정한 여러 파일 중 어떤 것을 이번 저장에 포함할지 골라 담는 '스테이징(준비)' 단계를 거쳐요.

단체 사진을 찍을 때 모든 사람이 아니라 이번에 사진에 들어갈 사람들만 무대 위로 올라오는 것과 같아요. 장바구니에 물건을 담아두고 한 번에 결제하는 것과도 비슷하죠. 원하는 파일들을 무대에 올려놓고 나서 찰칵 사진을 찍는 명령이 바로 커밋이에요.

그리고 사진 뒤편에 날짜와 메모를 적어두듯, 커밋할 때마다 '로그인 오류 수정' 같은 커밋 메시지(설명글)를 필수로 적어야 해요. 이 메모 덕분에 동료 개발자들도 코드를 일일이 열어보지 않고 어떤 변경이 있었는지 한눈에 파악할 수 있어요.

커밋의 3단계 흐름: 작업 공간, 스테이징, 커밋 1. 작업 공간 2. 스테이징 3. 커밋 수정된 파일들 무대 위로 선택 찰칵! 사진과 메모

조금 더 정확히 말하면: 전체 복사가 아니에요

매번 파일 전체를 통째로 복사해서 저장한다면 컴퓨터 용량이 금방 바닥나지 않을까요? 깃은 용량을 아끼기 위해 아주 똑똑한 방식을 사용해요.

이전 커밋과 비교해서 실제로 변경된 부분만 똑똑하게 감지하고, 변경되지 않은 파일은 기존 데이터의 위치만 가리키는 링크 형태로 보관해요. 겉으로는 프로젝트 전체의 완벽한 스냅샷처럼 보이지만 실제로는 최소한의 용량만 사용해 가볍게 저장되는 원리예요.

또한 커밋은 고유한 식별 번호(해시값)를 가져요. 이 덕분에 어떤 커밋도 서로 섞이지 않고 시간의 순서대로 정교한 사슬처럼 안전하게 연결되어 보존돼요.

🤔 흔한 오해

✕ 오해

커밋을 누르면 내 코드가 바로 인터넷에 올라가 모두에게 공개된다.

✓ 사실

커밋은 일단 내 컴퓨터(로컬) 안에만 안전하게 보관되는 개인 세이브 파일이에요. '푸시(Push)'라는 별도의 명령어로 인터넷 저장소에 올려보내기 전까지는 다른 사람에게 보이지 않아요.

🧺 일상에서 만나요

1 새로운 로그인 기능을 완성한 뒤 '로그인 버튼 디자인 수정'이라는 커밋 메시지와 함께 변경 내역을 저장해요.
2 코드를 고치다가 프로그램이 완전히 망가졌을 때, 어제 정상 작동하던 커밋 시점으로 프로젝트 전체를 되돌려요.
💡 그러니까 한마디로

커밋은 작업한 코드의 변경 내역을 설명 메모와 함께 안전하게 남기는 디지털 세이브 포인트예요.