빅데이터 전문가 양성과정
깃(Git)이란?
과제 제출 전 알아두면 좋은 Git·GitHub·Gist 기초를 단계별로 정리했습니다.
1-1. 이런 경험 있으신가요?
보고서_최종.docx 보고서_최종_수정.docx 보고서_진짜최종.docx 보고서_진짜진짜최종_v2.docx
파일을 수정할 때마다 이름을 바꿔서 저장한 경험, 다들 있으시죠? 코드도 마찬가지입니다. 기능을 추가하다가 갑자기 에러가 나면 "아까 되던 코드로 돌아가고 싶다!"는 생각이 들 때가 있습니다.
Git은 이 문제를 해결해줍니다.
1-2. Git이란?
Git은 버전 관리 시스템(VCS)입니다. 쉽게 말해 코드의 타임머신이자 세이브 포인트입니다.
게임에서 세이브를 하면 언제든 그 시점으로 돌아갈 수 있죠? Git도 마찬가지입니다. 코드가 잘 되는 시점에 "저장(커밋)"을 해두면, 나중에 코드가 망가져도 그 시점으로 돌아갈 수 있습니다.
1-3. Git vs GitHub
| 구분 | Git | GitHub |
|---|---|---|
| 정체 | 프로그램 (내 컴퓨터에 설치) | 웹사이트 (인터넷 저장소) |
| 비유 | 내 컴퓨터의 세이브 파일 | 클라우드에 올린 세이브 파일 |
| 역할 | 버전 관리를 수행 | Git 저장소를 온라인에 보관 |
| 인터넷 | 필요 없음 | 필요함 |
정리하면 Git은 내 컴퓨터에서 돌아가는 도구이고, GitHub는 그 결과물을 인터넷에 올려두는 서비스입니다.
1-4. Git의 3가지 공간 (핵심 개념)
Git에는 파일이 거치는 3개의 공간이 있습니다. 이것만 이해하면 절반은 끝입니다.
비유로 설명하면:
2-1. 설치 확인
터미널(명령 프롬프트)을 열고 아래 명령어를 입력하세요.
git --versiongit version 2.xx.x 같은 결과가 나오면 이미 설치되어 있는 것입니다.
2-2. 설치가 안 되어 있다면
| 운영체제 | 설치 방법 |
|---|---|
| Windows | https://git-scm.com 에서 다운로드 후 설치 (기본 설정 그대로 Next) |
| Mac | 터미널에서 xcode-select --install 입력 |
2-3. 최초 1회 설정 (이름, 이메일)
Git을 처음 사용할 때 "나는 누구인지" 알려줘야 합니다. 아래 명령어에서 따옴표 안의 내용을 본인 정보로 바꿔 입력하세요.
git config --global user.name "홍길동"git config --global user.email "hong@example.com"설정이 잘 됐는지 확인하려면 git config --list 를 입력합니다.
명령어 한눈에 보기
git init→ "여기서 Git 시작할게!"git status→ "지금 상태가 어때?"git add→ "이 파일 보낼 준비!"git commit→ "저장 확정!"git log→ "지금까지 기록 보여줘"git init — 저장소 만들기
mkdir my_project cd my_project git init
git init을 실행하면 해당 폴더가 Git 저장소가 됩니다. 숨겨진 .git 폴더가 생성되는데, 이 폴더가 모든 버전 기록을 보관합니다.
⚠️ 주의사항: .git 폴더를 절대 직접 수정하거나 삭제하지 마세요!
git status — 현재 상태 확인
git status
이 명령어는 현재 어떤 파일이 수정되었고, 어떤 파일이 커밋 준비가 되었는지 알려줍니다.
출력 예시:
On branch main Untracked files: ← "Git이 아직 모르는 새 파일이 있어요" hello.py Changes not staged: ← "수정했지만 아직 add 안 한 파일" modified: main.py Changes to be committed: ← "add 완료! 커밋하면 저장됩니다" new file: utils.py
💡 팁: 뭘 해야 할지 모르겠으면 git status부터 치세요!
git add — 스테이징 (커밋 준비)
# 특정 파일 하나만 추가 git add hello.py # 여러 파일 한번에 추가 git add hello.py main.py # 현재 폴더의 모든 변경 파일 추가 git add .
git add는 '이 파일을 다음 커밋에 포함시키겠다'는 의미입니다.
git commit — 저장 확정
git commit -m "첫 번째 커밋: hello.py 추가"
-m 뒤에 오는 문자열은 커밋 메시지입니다. '이번에 뭘 했는지'를 간단히 적는 것입니다.
좋은 예:
- 로그인 기능 추가
- 비밀번호 유효성 검사 버그 수정
- README 파일 작성
나쁜 예:
- 수정
- asdf
- ㅋㅋ
- 최종
git log — 커밋 기록 보기
# 전체 로그 보기 git log # 한 줄씩 간단히 보기 (추천!) git log --oneline
앞의 영문+숫자 조합은 커밋 ID입니다. 나중에 특정 시점으로 돌아갈 때 이 ID를 사용합니다.
출력 예시:
a1b2c3d (HEAD -> main) 비밀번호 검증 기능 추가 f4e5d6c 로그인 기능 구현 7a8b9c0 첫 번째 커밋: 프로젝트 생성
실습 목표
파이썬 파일을 만들고, 수정하면서 Git으로 버전을 관리해봅니다.
프로젝트 폴더 생성 및 Git 초기화
mkdir python_practice cd python_practice git init
결과:
Initialized empty Git repository in .../python_practice/.git/
첫 번째 파일 만들기
hello.py 파일을 만들고 아래 내용을 작성하세요.
# hello.py
print("안녕하세요! Git 실습입니다.")상태 확인 → 추가 → 커밋
git status # hello.py가 Untracked로 표시됨 git add hello.py # 스테이징 git status # hello.py가 "Changes to be committed"로 변경됨 git commit -m "첫 번째 커밋: hello.py 생성"
파일 수정 후 두 번째 커밋
hello.py 파일을 만들고 아래 내용을 작성하세요.
# hello.py
def greet(name):
print(f"안녕하세요, {name}님! Git 실습입니다.")
greet("철수")git status # hello.py가 "modified"로 표시됨 git add hello.py git commit -m "greet 함수 추가"
새 파일 추가 후 세 번째 커밋
calculator.py 파일을 만들고 아래 내용을 작성하세요.
# calculator.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
print(add(3, 5)) # 8
print(subtract(10, 4)) # 6git add calculator.py git commit -m "계산기 함수 추가 (add, subtract)"
커밋 기록 확인
git log --oneline
결과:
c3d4e5f (HEAD -> main) 계산기 함수 추가 (add, subtract) a1b2c3d greet 함수 추가 7a8b9c0 첫 번째 커밋: hello.py 생성
🎉 축하합니다! 3개의 버전(세이브 포인트)이 만들어졌습니다!
과거 코드 확인해보기
# 첫 번째 커밋 시점의 hello.py 내용 보기 git show 7a8b9c0:hello.py
아까 작성한 첫 번째 버전의 코드가 보입니다. 이처럼 Git은 모든 변경 기록을 보관하고 있어서 언제든 과거 시점의 코드를 확인할 수 있습니다.
GitHub 가입
https://github.com 에서 계정을 만듭니다 (무료).
새 저장소(Repository) 만들기
- GitHub 우측 상단 + 버튼 클릭하고 New repository를 선택합니다
- Repository name에 python_practice를 입력합니다
- Public(공개)을 선택합니다
- 나머지는 체크하지 않고 Create repository를 클릭합니다
내 코드를 GitHub에 올리기
git remote add origin https://github.com/내아이디/python_practice.git git branch -M main git push -u origin main
| 명령어 | 의미 |
|---|---|
git remote add origin 주소 | "이 GitHub 주소를 origin이라는 이름으로 연결해줘" |
git branch -M main | "현재 브랜치 이름을 main으로 할게" |
git push -u origin main | "내 커밋들을 GitHub에 올려줘!" |
앞으로 코드를 수정할 때마다
이 3단계가 Git 사용의 기본 루틴입니다.
# 1. 코드 수정 # 2. add + commit git add . git commit -m "변경 내용 설명" # 3. GitHub에 반영 git push
명령어 정리
git init새 저장소 만들기git status현재 상태 확인git add 파일명커밋할 파일 지정git add .모든 변경 파일 지정git commit -m ""변경사항 확정 저장git log커밋 기록 보기git log --oneline커밋 기록 한줄로 보기git remote addGitHub 저장소 연결git pushGitHub에 업로드[일상 루틴]
코드 수정 → git add . → git commit -m "" → git push자주 하는 실수 & 해결법
실수 1: '커밋할 게 없다고 나와요'
nothing to commit, working tree cleanadd를 하지 않았거나, 파일을 수정하지 않은 상태입니다. git status로 현재 상태를 먼저 확인하세요.
실수 2: '커밋 메시지를 안 썼어요' (vim 화면이 나올 때)
-m 옵션 없이 git commit만 입력하면 텍스트 편집기(vim)가 열립니다.당황하지 말고 아래를 입력하세요. :q! ← 저장 안 하고 나가기 그런 다음 -m 옵션을 붙여서 다시 커밋하세요. git commit -m "메시지 입력"
실수 3: 'add를 잘못했어요'
git reset HEAD 파일명 # 스테이징 취소 (파일 내용은 안 바뀜)
실수 4: '.git 폴더를 지워버렸어요'
.git 폴더가 삭제되면 모든 커밋 기록이 사라집니다. 복구 불가능하므로 이 폴더는 절대 삭제하지 마세요.