Corgi - Diagonal Select 2 git add와 git commit 개발 이력 기록하기 Corgi - Diagonal Select 2

Git & Githube

git add와 git commit 개발 이력 기록하기

sujin-note 2026. 5. 4. 18:00

안녕하세요! 수진입니다:) 

지난 시간에 Git 저장소를 만들고 내 명함을 등록하는 Set up 과정을 함께 해보았는데요. 다들 무사히 .git 폴더를 생성해보셨나요? 오늘은 드디어 우리가 정성껏 짠 코드를 Git에 기록하는 방법을 알려드리려고 해요. git add와 commit으로 기록할 수 있는 법에 대해서 정리해볼게요. 지난 글 아직 못 읽어보신 분들은 아래 링크 참고하세요~

https://sujin-note.tistory.com/13

 

Git 기본 명령어 Setup셋업하기

안녕하세요! 수진입니다:) 지난 포스팅에서 Git의 작업 영역과 파일 상태에 대해 알아봤다면, 오늘은 실제로 내 프로젝트에 Git을 입히는 첫 단계인 "Git 기본 명령어 Set up"에 대해서 정리해 볼게요

sujin-note.tistory.com

 

1. Git의 독특한 저장 방식: 왜 '두 단계'일까?

처음 Git을 접하면 가장 당황스러운 게 바로 이 부분입니다. 가장 많은 질문 중에 하나로  "그냥 저장(Save)버튼 하나면 되지(Ctrl +s), 왜 굳이 add를 하고 또 commit을 해야 하나요?"

 

이걸 이해하려면 Git의 3개 작업 영역을 다시 복습해야합니다. 

https://sujin-note.tistory.com/12

 

Git 작업 영역과 파일의 상태! 왜 내 코드는 자꾸 사라질까?

안녕하세요! 수진입니다:) 개발 공부를 시작하면 가장 먼저 마주하는 벽 중 하나가 바로 Git 이죠. 단순히 '저장' 버튼만 누르면 될 것 같은데.. 왜 굳이 add를 하고 commit을 해야하는지 헷갈렸던 적

sujin-note.tistory.com

빠른 이해를 위해 간단하게 작성해보자면 Git은 파일의 변화를 바로 저장소에 박제하지 않고, '검토 단계'를 둡니다.

- Working Directory (작업 디렉토리) = 실제 파일이 있는 폴더 입니다. 여기서 코드를 짜고 파일을 수정하죠. 아직 Git은 이 변화를 지켜보기만 할 뿐, 기록하진 않습니다. 

- Staging Area (스테이징 영역) = 다음 저장(commit)에 포함될 파일들이 대기하는 장소입니다. 마치 무대 뒤에서 자기 차례를 기다리는 배우들과 같죠. ( - git add)

- Repository (저장소) = 스테이징 영역에 있던 파일들이 하나의 '스냅샷'으로 영구히 기록되는 곳입니다. ( - git commit)

 

내가 10개의 파일을 수정했어도, 그중 로그인 기능에 관련된 3개만 먼저 묶어서 저장하고 싶을 수 있잖아요? 그 때 Staging Area라는 중간 단계가 빛을 발하게 됩니다. 내가 원하는 수정 사항만 '선별적으로' 기록할 수 있게 해주는 아주 고마운 존재이죠!

 

2. 무대 뒤로 입장!  (git add)

수정한 파일을 스테이징 영역(Staging Area)으로 옮기는 명령어입니다. 상황에 따라 다양하게 사용할 수 있어요.

- git add

# 1. 특정 파일만 콕 집어서 추가하기
$ git add hello.py

# 2. 특정 폴더(디렉토리) 안의 모든 파일 추가하기
$ git add src/

# 3. 수정된 모든 파일을 한꺼번에 추가하기 (가장 많이 써요!)
$ git add .

git add . 에서 .은 현재 디렉토리와 하위 디렉토리의 모든 변경 사항을 의미합니다. git status를 입력했을 때 파일명이 초록색으로 변했다면? 공연 무대에 올라갈 준비가 완료된 상태(Staged)입니다. 

 

다음시간에 git status에 대해서도 알려드려도 좋겠네요! 

 

음 다른 예시로도 들어볼게요.

우선 상황을 가정해 볼게요. main.py와 utils.py를 수정했고, 새롭게 README.md를 만들었습니다. 

# 1. 특정 파일만 콕 집어서 추가하기
# "난 일단 main.py의 수정 사항만 먼저 기록하고 싶어!"
$ git add main.py

# 2. 특정 폴더(디렉토리) 전체를 추가하기
# "이미지 폴더 안에 새로 넣은 아이콘들을 몽땅 올려야지."
$ git add assets/images/

# 3. 현재 경로의 모든 변경 사항을 추가하기 (가장 흔히 쓰는 명령어!)
# "자잘하게 언제 다 해? 그냥 지금 수정한 거 다 올려!"
$ git add .

# 4. 삭제된 파일까지 포함하여 모든 변경 사항 반영하기
$ git add -A

여기서 주의사항이 있는데요.  git add . 은 매우 편리하지만, 의도치 않게 설정 파일이나 로그 파일까지 올라갈 수 있어요.

항상 git status명령어로 어떤 파일들이 초록색(staged)으로 변했는지 확인하는 습관을 들입시다.

 

3. 역사의 한 페이지로 기록하기: git commit

이제 스테이징 영역에 있는 파일들을 로컬 저장소에 영구적으로 저장할 차례입니다.

이 때 우리는 커밋 메시지 라는 짧은 메모를 꼭 남겨야 합니다. 

- git commit

1. 한 줄 메시지로 빠르게! (-m 옵션)

$ git commit -m "feat: 사용자 로그인 유효성 검사 로직 추가"

가장 많이 쓰이는 방식입니다. 간단하고 명확한 수정 사항을 남길 때 최적이죠. 

아래에 제가 실제로 쇼핑몰 만드는 프로젝트 할 때 했던 내용을 이미지로 보여드릴게요. 

 

2. 상세한 설명이 필요할 때

$ git commit

메시지만으로 부족할 때가 있죠? 옵션 없이 git commit만 입력해 보세요.

그러면 미리 설정된 텍스트 데이터가 열립니다. vs code라던지 다른 에디터! . 첫 줄에는 제목을, 한 줄 띄우고 본문에는 상세한 이유와 변경 내용을 적을 수 있습니다. 협업 시 동료들에게 큰 도움이 됩니다. 

 

3. add와commit을 한 번에! ( -am 옵션)

$ git commit -am "fix: 메인 페이지 버그 수정"

이미 git이 관리하고 있던 (Tracked)파일이라면, add 과정을 생략하고 바로 스테이징과 커밋을 동시에 할 수 있습니다. 

단, 새로 만든 파일 (Untracked)은 이 명령어가 먹히지 않으니 주의하세요!

쉽게 말해서 새로 만든 파일은 반드시 한 번은 따로 git add를 해줘야 이 명령어가 작동합니다!

 

sujin-note Tip

커밋 메시지, 어떻게 써야 잘 썼다고 소문날까?

공대생 여러분! git commit -m "수정", git commit -m "111"......이런식으로 남기고 계신 건 아니시죠.... (뜨끔!) 제가 잘 몰랐을 때 했던.... 방식인데.. 나중에 협업할 때 팀원들이나 동료들이.... 여러분을 원망하거나... 놀릴 수도 있어요...~~~

저도 제 동기한테 ㅎㅎ 누가 이렇게 쓰냐... 이ㅣ러면서... 놀림 당한 적이 있어요... 여러분은 제가 알려드릴 때 미리 공부해서 놀림당하지 말기로 해요...!!!! 저만의 흑역사랄까요ㅜㅜ

- feat = 새로운 기능 추가

- fix = 버그 수정

- docs = 문서 수정 (README.md 등)

- style = 코드 포맷팅, 세미콜론 누락 등 (코드 변경 없음)

- refactor = 코드 리팩토링 (기능 변화 없음)

이렇게 접두사를 붙이는 습관을 들이면 훨씬 가독성도 좋고 전문적인 개발자처럼 보인답니다!! 😎 ㅎㅎ

 

글을 마치며 오늘 배운 add와commit은 단순히 기술적인 명령어가 아닙니다. 여러분이 프로젝트에 쏟은 시간과 고민을 기록하는 것과 같아요! 터미널을 열고  git status을 쳤을 때 나다나는 그 초록색 파일 명 들을 보며 느껴지는 그 뿌듯함! 다음 시간에는 git status에 대해서 알아봐야겠네요!  여러분도 곧 느끼게 되실 거예요. 오늘 포스팅이 도움이 되셨나요? 긴 글 읽어주셔서 감사하고 오늘 하루도 수고하셨습니다!