이 글에서는 매일 반복하는 기본 작업 흐름을 익힙니다. 프로젝트 사본을 가져오고, 변경 사항을 저장(commit)한 다음 GitHub에 올리고(push), .gitignore로 불필요한 파일을 제외하는 과정입니다. Claude Code가 저장소에서 작업할 때 대신 수행하는 흐름이기도 하니, 알아 두면 더 유용합니다.

예시와 화면 캡처는 JetBrains IDE 기준입니다. 사용하는 버전에 따라 메뉴 이름과 위치가 다를 수 있습니다. 연습할 때는 별도의 학습용 저장소를 사용하세요. 실제 프로젝트에서는 해당 프로젝트의 브랜치, commit, push 규칙을 따르세요.

프로젝트 clone

GitHub에 저장소가 있고, 이제 작업을 시작할 수 있도록 컴퓨터에 로컬 사본을 가져오려 합니다. 이 과정을 clone이라고 합니다.

1단계. IDE를 실행하세요. 프로젝트가 열려 있다면 File | Close Project로 닫으세요. 시작 화면(Welcome Screen)에서 Clone Repository 또는 Get from VCS를 선택합니다.

"프로젝트 clone" 섹션 그림

2단계. 열린 창에 저장소 URL을 붙여 넣으세요. 다른 사람의 저장소를 clone할 때 편리합니다. GitHub의 저장소 페이지에서 URL을 복사하면 됩니다.

clone할 저장소 URL 입력

자신의 저장소를 clone한다면 IDE에서 Log in to GitHub를 눌러 GitHub 계정에 로그인하는 편이 가장 간단합니다. 인증을 위해 IDE가 브라우저를 엽니다.

GitHub에서 JetBrains IDE 인증 화면

브라우저에 열린 페이지에서 초록색 Authorize JetBrains 버튼을 누르세요. 그러면 IDE의 목록에서 자신의 저장소를 바로 고를 수 있습니다. 원하는 프로젝트를 선택하고 Clone을 누르세요.

clone할 저장소 목록

3단계. 프로젝트를 신뢰할지 확인하세요. 익숙한 자신의 저장소라면 Trust Project를 선택해도 됩니다. 낯선 저장소라면 먼저 내용과 실행 지침을 확인하세요. 신뢰하면 IDE가 프로젝트의 작업을 실행할 수 있습니다.

4단계. 프로젝트를 여세요. Windows에서는 색인 속도를 높이기 위해 IDE가 바이러스 검사 제외 항목을 추가하라고 제안할 수 있습니다. Git을 배우는 데 꼭 필요한 설정은 아니므로, clone하려고 보호 기능을 끄지는 마세요.

바이러스 검사 제외 항목 설정

변경 사항 저장 - commit

commit은 특정 시점의 프로젝트 상태를 저장한 스냅샷입니다. 게임의 저장 지점처럼 생각하면 됩니다. 문제가 생기면 언제든 그 시점으로 돌아갈 수 있죠. 각 commit에는 고유 ID와 변경 내용을 설명하는 메시지가 있습니다.

기록에 순서대로 쌓인 스냅샷ABCD
기록에 순서대로 쌓인 스냅샷

commit 기록에서는 새 commit이 매번 이전 commit 위에 쌓이며, 프로젝트가 발전해 온 과정이 시간순으로 남습니다.

1단계. 파일을 수정하세요. README.md를 열고 프로젝트 설명을 추가합니다. 파일을 수정하기 시작하면 IDE의 프로젝트 패널에서 파일 이름이 파란색으로 표시됩니다. 파일은 바뀌었지만 아직 Git에 저장되지 않았다는 뜻입니다. 수정된 줄 옆에는 색상 막대가 표시됩니다. 추가된 줄은 초록색, 변경된 줄은 파란색입니다.

수정된 파일 강조 표시

Commit 탭을 열어 변경된 파일을 살펴보세요. JetBrains의 일반 모드에서는 변경 목록(changelists)을 사용하며, 별도의 Git staging은 설정에서 켤 수 있습니다. 이 창에서 체크한 파일과 터미널에서 이미 staging한 파일을 혼동하지 마세요.

IntelliJ IDEA의 Commit 창

여기서 볼 수 있는 항목은 다음과 같습니다.

  • Changes - Git이 이미 추적하고 있고 내용이 바뀐 파일입니다. 여기서는 README.md가 해당합니다.
  • Unversioned Files - 프로젝트 폴더에 있지만 Git이 아직 추적하지 않는 새 파일입니다.

2단계. 선택한 diff를 확인하세요. Unversioned Files의 새 파일은 아직 추적 대상이 아닙니다. 빌드 결과물, 캐시, 개인 설정은 보통 .gitignore로 제외합니다. 프로젝트 공용 설정은 Git에 저장할 수도 있으니, .idea/ 폴더 전체를 무시하기 전에 프로젝트 규칙을 확인하세요.

3단계. commit을 만드세요. docs: Describe the project in README처럼 알아보기 쉬운 메시지를 입력하고, 선택한 diff를 확인한 다음 Commit을 누르세요. commit 전 검사가 켜져 있다면 결과를 기다리세요. Git Log를 열어 새 commit에 원하는 파일이 포함됐는지 확인합니다.

commit 완료
Claude Code와의 연결

Claude Code가 commit을 제안하면, 실제로는 선택한 파일과 메시지로 git commit이 실행됩니다. 파일 목록을 직접 확인하는 습관은 여기서도 그대로 통합니다. Claude가 꼭 필요한 파일만 commit하려는지 살펴보고, commit 메시지를 읽은 뒤 승인하거나 수정하세요.

GitHub에 변경 사항 보내기 - push

commit은 아직 컴퓨터에만 저장되어 있습니다. 팀과 공유하거나 안전한 곳에 보관하려면 GitHub의 원격 저장소로 보내야 합니다.

  • 로컬 commit
  • git push
  • 원격 브랜치

Push는 선택한 원격 브랜치를 여러분의 commit으로 업데이트합니다. 다른 사람의 작업을 내려받거나 아직 commit하지 않은 파일을 보내지는 않습니다.

1단계. Push를 누르세요. Push 버튼은 상단의 Main Toolbar에 있으며, 오른쪽 위를 향하는 화살표 모양입니다.

Main Toolbar의 Push 버튼

2단계. 확인하고 승인하세요. 전송할 commit이 모두 표시된 창이 열립니다. 필요한 항목만 보내는지 확인할 마지막 기회입니다. Push를 누르세요.

Push 확인 창

전송이 완료되면 IDE가 알림을 표시합니다. 알림에서 저장소와 대상 브랜치를 확인하세요. 이 연습에서는 origin/main입니다. 알림 문구는 IDE 버전에 따라 다릅니다.

3단계. GitHub에서 결과를 확인하세요. 브라우저에서 GitHub 저장소 페이지를 열면 변경 사항과 파일이 올라온 것을 확인할 수 있습니다.

Claude Code와의 연결

Claude Code가 대신 변경 사항을 보낼 수도 있습니다(git push). 서버에는 이미 commit에 저장된 내용만 올라간다는 점을 기억하세요. 따라서 commit 단계에서 스냅샷에 무엇이 포함됐는지 확인하는 일이 GitHub에 올라갈 내용을 확인하는 일이기도 합니다.

Git 도구 창

IDE에는 별도의 Git 도구 창과 상단 툴바의 빠른 작업이 있습니다. 버전 관리의 중심이라고 보면 됩니다. 주요 버튼은 다음과 같습니다.

IDE의 Git 컨트롤
  • Commit(체크 표시) - 변경 사항을 저장하는 창을 엽니다.
  • Push(오른쪽 위 화살표) - GitHub로 commit을 보내는 창을 엽니다.
  • Branches - 브랜치를 관리하는 위젯입니다(왼쪽 위).
  • Show Git Log - 프로젝트의 모든 commit 기록을 보여 주는 개인 타임머신입니다.

업데이트 가져오기

Update Project는 변경 사항을 가져와 로컬 브랜치에 합칩니다. 설정에 따라 IDE는 merge 또는 rebase를 사용합니다. 업데이트하기 전에 진행 중인 작업을 저장하고 어떤 방식으로 업데이트할지 확인하세요.

새 작업을 시작하기 전에 파일 상태를 확인하고, 필요한 브랜치가 최신인지 살펴보세요. 다른 사람이 만든 commit이 있으면 가져와 프로젝트 규칙에 따라 합치세요. 업데이트 과정에서 충돌을 해결해야 할 수도 있습니다. 업데이트했다고 해서 앞으로 충돌이 사라지는 것은 아닙니다.

불필요한 파일 제외 - .gitignore

프로젝트에 임시 파일이나 빌드 결과물이 생길 때 저장소에 실수로 포함되지 않게 하려면 제외 규칙을 추가해야 합니다. 프로젝트 루트에 .gitignore라는 파일을 만들면 됩니다.

보통 제외하는 파일과 그 이유

거의 모든 기술 스택에는 Git에 넣지 않는 파일이 있습니다. 컴퓨터마다 다르거나 빌드할 때 다시 생성되는 파일들이죠.

  • 빌드 폴더(예: build/, dist/) - 쉽게 다시 만들 수 있는 컴파일 결과물입니다.
  • 패키지 매니저 캐시와 의존성(예: node_modules/) - 수백 MB에 달할 수 있고 각 시스템마다 다릅니다.
  • IDE의 개인 설정(예: 작업 창 상태)입니다. .idea/에는 프로젝트 공용 설정도 들어갈 수 있으므로, 폴더 전체는 프로젝트에서 그렇게 정한 경우에만 제외하세요.
  • 운영체제 파일(.DS_Store, Thumbs.db) - OS가 자동으로 만드는 임시 파일입니다.

파일을 직접 제외하는 방법:

1단계. notes.txt라는 메모용 로컬 파일을 만들었다고 해 보죠. 프로젝트 트리에서 파일을 마우스 오른쪽 버튼으로 클릭하세요.

임시 파일 만들기

2단계. Git -> Add to .gitignore -> Add to .gitignore 메뉴로 이동하세요. 이 옵션은 선택한 파일을 프로젝트 루트의 .gitignore에 추가합니다.

메뉴에서 .gitignore에 추가

.gitignore가 아직 없다면 IDE가 파일을 만들지 묻습니다. 생성에 동의하세요.

3단계. IDE가 파일 이름을 .gitignore에 자동으로 추가합니다.

.gitignore에 파일 추가됨

규칙에 해당하는 미추적 파일은 보통 추가 목록에서 사라집니다. IDE의 색상은 테마에 따라 다릅니다. 이 규칙은 파일을 강제로 추가하는 것을 막지 않으며, 이미 저장된 파일을 기록에서 지우지도 않습니다. 모두에게 적용할 규칙이라면 .gitignore 자체도 commit하세요.

주의할 점

이미 추적 중인 파일이라면. .gitignore에 추가해도 추적이 중단되지는 않습니다. git rm --cached 파일-경로 명령은 작업 사본을 남긴 채 파일을 인덱스에서 제거합니다. 그런 다음 이 변경 사항을 commit해야 합니다. 이전 버전은 기록에 남습니다. 비밀 정보가 노출됐다면 무시 규칙만 추가하지 말고 먼저 해당 접근 권한을 폐기하세요.

.gitignore 규칙

이 파일에는 Git이 무시할 파일 및 폴더 이름의 패턴을 적습니다. 빈 줄은 무시되며, # 기호로 주석을 시작합니다.

  • * - 임의 개수의 문자를 대신합니다. 예를 들어 *.log는 확장자가 .log인 모든 파일을 무시합니다.
  • 패턴 끝의 /는 디렉터리를 뜻합니다. 예를 들어 build/는 build 폴더의 모든 내용을 무시합니다.
  • 줄 맨 앞의 !는 규칙을 반전합니다. 예를 들어 *.log 규칙이 있을 때 !important.log는 해당 파일을 무시 대상에서 제외합니다. 추적은 파일을 추가한 뒤부터 시작됩니다.
  • 슬래시 사이의 **는 중첩 폴더가 몇 단계든 일치하며, 중첩 폴더가 없어도 됩니다. 예를 들어 logs/**/*.log는 logs/a.log와 logs/2026/09/a.log 모두 찾습니다.

.gitignore 파일 예시

# 빌드 및 캐시 폴더
build/
dist/
node_modules/

# IDE 개인 설정 (JetBrains)
.idea/workspace.xml

# 운영체제 파일
.DS_Store
Thumbs.db

바로 쓸 수 있는 템플릿

파일을 처음부터 작성할 필요는 없습니다. 커뮤니티에서 검증한 템플릿을 바로 사용할 수 있습니다.

  1. 여러 언어와 프레임워크에 맞춘 GitHub의 .gitignore 모음: https://github.com/github/gitignore;
  2. gitignore.io - 사용하는 기술에 맞는 .gitignore를 생성하는 웹 서비스입니다. 언어, OS, IDE를 입력하면 됩니다.

Claude Code와 함께 사용할 때

매일 반복하는 이 흐름은 Claude Code가 대신 수행할 수 있는 작업입니다. 확인할 점은 다음과 같습니다.

  • Claude가 직접 commit과 push를 할 수 있습니다. 여러분은 commit에 무엇이 포함됐는지 확인하고 메시지를 읽으면 됩니다.
  • .gitignore를 잘 설정하면 불필요한 파일을 제외할 수 있지만, commit할 파일은 그래도 직접 확인해야 합니다.
  • 업데이트 전에는 브랜치 상태와 진행 중인 작업을 확인하고, 업데이트 후에는 병합 결과를 살펴보세요.
Claude Code와의 연결

commit이나 push를 승인하기 전에 Claude Code가 보여 주는 diff를 확인하세요. Commit 창에서 체크 표시를 확인하는 것과 같은 과정이며, 여기서는 Claude가 변경을 제안했다는 점만 다릅니다. 이렇게 해야 여러분이 실제로 승인한 내용만 기록과 서버에 올라갑니다.

이전 글: Git과 GitHub 소개 · 다음 글: Git 브랜치와 병합