내 프로젝트의 첫 백업본 만들기
직접 Git을 사용하여 프로젝트의 현재 상태를 저장하는 방법을 배웁니다. git status, add, commit, log의 흐름을 익힙니다.
Git이 왜 바이브코딩의 생명줄인지 머리로는 이해했습니다. 그렇다면 이제 내 손으로 직접 터미널에 명령어를 쳐서, 소중한 내 프로젝트 코드의 첫 번째 세이브 포인트(커밋)를 만들어 볼 차례입니다. 파일 변경을 확인하고, 짐을 싸고, 도장을 찍고, 마지막으로 기록을 확인하는 4단계의 자연스러운 흐름을 반복 연습하면 어느새 Git 명령어가 숨 쉬듯 자연스러워질 것입니다.
Git의 3단계 공간 이해하기
무작정 명령어를 치기 전에 Git이 프로젝트를 다루는 세 가지 마법의 공간을 이해해야 합니다. 이 개념만 이해하면 Git의 기초 절반을 끝낸 것과 다름없습니다.
- 작업 공간 (Working Directory): 우리가 평소에 코드를 작성하고 수정하는 실제 눈에 보이는 폴더입니다. 아직 세이브되지 않은 초안들이 널려있는 책상과 같습니다.
- 무대 (Staging Area): 작업한 수십 개의 파일 중에서, 이번 세이브 포인트(커밋)에 포함시킬 파일들만 골라서 임시로 올려두는 무대 혹은 택배 상자입니다.
- 창고 (Repository): `.git`이라는 숨김 폴더 안의 영구적인 저장 공간입니다. 무대에 올라온 파일들을 찰칵 사진 찍어(커밋하여) 창고의 선반에 차곡차곡 안전하게 보관합니다.
우리의 목표는 책상 위에서 수정한 파일을 $\rightarrow$ 택배 상자에 포장하고 $\rightarrow$ 창고에 영원히 보관하는 것입니다.
현재 상황 파악하기: `git status`
어떤 작업을 하든 습관적으로 가장 많이, 제일 먼저 치게 될 명령어는 `git status`입니다. 말 그대로 현재 내 책상(프로젝트 폴더)의 상태(Status)를 브리핑해 달라는 명령입니다.
터미널에 `git status`를 치면, 지난번 세이브 이후로 새로 만들어진 파일, 내용이 수정된 파일, 혹은 지워진 파일들을 빨간색이나 초록색 글씨로 친절하게 알려줍니다.
git status 실행 화면 이해하기
$ git status
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
modified: index.html
Untracked files:
(use "git add <file>..." to include in what will be committed)
style.css위 메시지는 "너 방금 `index.html` 파일을 수정했고, 이전에 없던 `style.css`라는 새 파일을 만들었는데, 이 두 개는 아직 무대(Staging Area)에 올라가지 않고 책상 위에 널브러져 있어"라는 의미입니다.
택배 상자에 담기: `git add`
`git status`로 변경된 파일들을 눈으로 확인했다면, 이제 이 변경 사항들을 이번 커밋에 포함시키기 위해 무대(택배 상자)로 올려보내야 합니다. 이때 쓰는 명령어가 `git add`입니다.
특정 파일 하나만 추가하려면 `git add index.html`처럼 파일 이름을 씁니다. 하지만 바이브코딩으로 여러 개의 파일을 동시에 수정했을 때는 이를 일일이 타이핑하기 귀찮습니다. 책상 위에서 변경된 모든 파일을 한꺼번에 상자에 쓸어 담고 싶다면, 모든 것을 의미하는 점(`.`) 기호를 사용하여 `git add .`이라고 입력합니다.
git add 사용의 정석
권장
- 명령어를 치기 전에 git status로 어떤 파일들이 변경되었는지 먼저 확인합니다.
- 대부분의 경우 터미널에 git add . (점)을 치는 것으로 빠르고 간편하게 모든 수정 사항을 무대에 올립니다.
- 올린 직후에 다시 한 번 git status를 쳐서 파일 이름들이 초록색으로 변했는지 확인합니다. 초록색은 포장이 잘 되었다는 뜻입니다.
주의
- 변경 확인 없이 무지성으로 처음부터 add를 치면 안 됩니다. 실수로 넣지 말아야 할 대용량 파일이나 비밀번호 파일이 함께 포장될 수 있습니다.
사진 찍고 영원히 저장하기: `git commit`
모든 짐을 `git add .`로 택배 상자에 담았다면, 이제 테이프를 밀봉하고 상자 겉면에 '내용물 이름표'를 붙여 창고로 보낼 차례입니다. 이 행위가 바로 사진을 찍어 세이브 포인트를 생성하는 `git commit`입니다.
커밋을 할 때는 "내가 이번 세이브에서 어떤 코드를 수정했는지" 미래의 나와 동료가 알아볼 수 있도록 반드시 메모(메시지)를 남겨야 합니다. 이를 옵션 `-m`(message)을 써서 전달합니다.
사용법은 `git commit -m "여기에 메모 작성"` 형태입니다.
올바른 커밋 메시지 남기기
bash```bash
$ git commit -m "사용자 로그인 화면 UI 수정"
[main 1a2b3c4] 사용자 로그인 화면 UI 수정
2 files changed, 45 insertions(+), 2 deletions(-)
```
위 메시지가 뜨면 2개의 파일이 성공적으로 창고에 저장되어 세이브 포인트가 생성된 것입니다!- 1나쁜 예: git commit -m '수정함' (나중에 도대체 뭘 수정했는지 절대 알 수 없습니다.)
- 2나쁜 예: git commit -m 'asdfasdf' (급하다고 의미 없는 글자를 넣으면 백업의 의미가 퇴색됩니다.)
- 3좋은 예: git commit -m '사용자 로그인 화면 UI 수정' (무엇을, 왜 수정했는지 한눈에 파악됩니다.)
내 작업의 발자취 감상하기: `git log`
방금 저장한 내역을 포함하여, 과거부터 지금까지 내가 차곡차곡 쌓아 올린 모든 세이브 포인트의 역사를 훑어보고 싶다면 `git log` 명령어를 입력합니다.
`git log`를 치면, 각 커밋 고유의 긴 암호(해시값), 커밋을 남긴 사람의 이름과 시간, 그리고 아까 `-m` 옵션으로 정성스럽게 적었던 메시지가 시간의 역순(최근 것이 맨 위)으로 출력됩니다.
이 로그 창은 앞서 터미널 환경에서 배운 `less` 화면과 똑같이 동작합니다. 즉, 방향키로 위아래로 스크롤할 수 있으며, 다 보고 나서 빠져나오고 싶을 때는 반드시 알파벳 `q`를 눌러야 원래 터미널 화면으로 돌아올 수 있습니다.
개념 퀴즈
퀴즈 답을 맞춰야 학습 완료가 됩니다.변경된 내 파일들을 안전하게 하나의 버전으로 저장(커밋)하기 위해 거쳐야 하는 올바른 Git 명령어 순서는 무엇인가요?
3줄 요약
- 1Git은 작업 공간(내 책상), 무대(Staging Area, 택배 상자), 창고(Repository, 영구 보관소)의 3단계 개념으로 파일을 이동시키며 버전을 관리합니다.
- 2git status로 수정된 파일을 확인한 후, git add . 명령어를 통해 모든 변경 사항을 한 번에 무대로(포장 상자 안으로) 끌어올립니다.
- 3git commit -m '작업 내용' 명령어로 포장된 파일들에 의미 있는 이름표를 붙여 하나의 영구적인 세이브 포인트를 생성하고, git log로 그 역사를 확인합니다.