고양이도 이해하는 Git 사용법

4장. 커밋, 푸쉬, 페치(Fetch) 정의

커밋은 "작업 묶음 1개"를 저장하는 행동입니다. 너무 크게 묶지 말고, 의미 있는 한 단위로 나눠 저장하는 게 좋습니다.

여기서 중요한 점: 각 커밋이 꼭 완벽하게 동작할 필요는 없습니다. 작업을 잘게 나누는 과정에서는 중간 상태 커밋이 생길 수 있습니다. 대신 브렌치를 머지할 때는 기능이 완성된 상태여야 팀 작업이 안전합니다.

푸쉬(Push)는 로컬 레포지토리의 커밋을 리모트 레포지토리로 보내는 행동입니다.

페치(Fetch)는 리모트의 최신 기록을 내 로컬의 origin/main 같은 추적 브렌치로 가져오는 행동입니다. 이때 현재 작업 위치(HEAD)는 바로 바뀌지 않습니다.

그림 4-1. 커밋은 작은 작업 묶음으로 쌓기

한 커밋에 한 목적만 담으면, 나중에 확인/되돌리기가 쉬워집니다.
커밋을 클릭해 Diff를 보면 "한 묶음의 범위"가 명확하게 보입니다.

그림 4-2. 동료에게 커밋을 공유하는 과정 (2)

1~2단계(아직 Fetch 전)에서는 작업자B의 main과 origin/main이 같은 커밋을 가리킵니다.
작업자A local은 Push 단계에서 origin/main도 최신화되는 모습을 함께 보여줍니다.
3단계 Fetch는 리모트 HEAD 커밋에서 시작합니다.
작업자B는 main(현재 작업 위치)과 origin/main(리모트 추적 위치)으로만 설명하며, Fetch 후에도 HEAD는 main에 그대로 유지됩니다.