코드 관리

커밋(Commit)

커밋은 Git에서 기록할 변경을 선택하고 설명을 붙여 프로젝트 상태를 이력으로 남기는 작업이자 그 기록입니다.

쉬운 설명

파일을 저장하면 지금 작업 중인 내용이 바뀌어요. 커밋은 그와 별도로, Git에 프로젝트 상태를 기록으로 남기는 일이에요. 어떤 변경을 기록할지 선택한 뒤 “신청 버튼 문구 수정”처럼 작업을 설명하는 메시지를 붙여요. 나중에 무엇이 바뀌었는지 비교하거나 이전 기록을 확인할 때 이 커밋을 사용해요.

이런 상황에서 만나요

AI에게 신청 버튼 문구를 바꾸게 한 뒤 결과를 확인했더니 원하는 대로 동작해요. 이제 이 수정을 기록하려는데, 수정 파일 목록에는 별도로 작업하던 README.md도 보여요. 이번 커밋에는 버튼 문구 변경만 포함하도록 골라 기록할 수 있어요.

버튼 문구 변경 기록하기설명용 화면
1이번 커밋에 넣을 변경

포함 · App.jsx — 신청 버튼 문구 수정

제외 · README.md — 작성 중인 설명

2커밋 메시지

신청 버튼 문구 수정

3커밋한 뒤의 이력

신청 버튼 문구 수정

내 컴퓨터의 Git 저장소에 기록됨

  1. 1선택한 변경: 이번 커밋에는 App.jsx의 버튼 수정만 담습니다. README.md 수정은 남겨 둡니다.
  2. 2메시지: 나중에 읽고 어떤 작업인지 알 수 있게 변경 내용을 적습니다.
  3. 3기록 결과: 커밋 후 내 컴퓨터의 Git 이력에 남습니다. 원격 저장소로 보내는 작업은 별도입니다.
변경을 선택하고 커밋을 만든 결과까지 한 화면에 정리한 예시입니다. 제외한 README.md 수정은 작업 파일에 남아 있으며 이번 기록에 포함되지 않습니다.

기록하기 전에 선택한 파일의 변경 내용을 열어 보세요. 이번 작업과 관계없는 수정이나 비밀값이 섞이지 않았는지 확인하고, 한 가지 수정 목적을 설명하는 메시지를 적으세요. 커밋한 뒤에는 이력에서 해당 메시지와 변경 내용이 맞는지 확인하면 돼요.

헷갈리기 쉬운 점

커밋하면 GitHub에도 바로 올라가나요?

내 컴퓨터에서 만든 커밋은 우선 그 컴퓨터의 Git 저장소에 기록돼요. GitHub 같은 원격 저장소로 보내는 푸시(push)는 별도 작업이에요. 다만 사용하는 도구의 동기화 기능이 두 작업을 이어서 실행할 수 있으므로, 버튼이 무엇을 하는지 확인하세요.

파일을 저장한 것과 다음 커밋에 넣을 내용을 선택한 것은 달라요. 스테이징한 뒤 파일을 다시 수정했다면, 나중에 수정한 내용은 다시 선택해야 이번 커밋에 들어갑니다. 커밋이 성공했다는 사실만으로 기능이 정상 동작하거나 배포가 완료됐다는 뜻은 아니에요.

왜 알아야 할까요?

AI가 여러 파일을 수정했을 때 확인한 작업만 나누어 기록할 수 있어요. 이후 문제가 생기면 “언제부터 달라졌는지”를 커밋별로 비교하고, 어느 수정이 원인이었는지 범위를 좁힐 수 있습니다.

조금 더 자세히

다음 커밋에 들어갈 내용을 고르는 과정을 스테이징(staging)이라고 합니다. 명령어로는 git add를 사용하고, 편집기에서는 변경 목록의 선택 기능을 이용할 수 있습니다. 파일 전체뿐 아니라 일부 변경만 선택할 수 있는 도구도 있습니다.

커밋에는 기록한 프로젝트 상태, 작성자, 메시지와 이전 커밋에 대한 정보 등이 들어갑니다. 각 커밋을 식별하는 값이 있어 특정 기록을 찾아 비교할 수 있습니다. 화면에 보이는 짧은 영문·숫자 조합은 이 식별값을 줄여 표시한 경우가 많습니다.

커밋 메시지는 나중에 읽어도 작업 의도를 알 수 있게 씁니다. “수정”보다는 “신청 버튼 문구 수정”처럼 무엇을 바꿨는지 적는 편이 좋습니다. 함께 검토할 수 있는 변경을 하나로 묶되, 관계없는 여러 작업을 한 커밋에 몰아 넣지 않으면 비교와 검토가 쉬워집니다.

직접 사용할 때 확인해 보세요

  • 이번에 기록할 변경만 선택한다
  • 선택한 변경 내용을 확인한다
  • 무엇을 바꿨는지 메시지에 적는다

관계 지도

커밋(Commit) 중심으로 관련 개념의 정의와 관계를 한눈에 정리했습니다.
커밋(Commit)의 정의와 관련 개념 간 관계를 설명한 계층형 그래프