Git과 GitHub의 개념
이 글의 목차
읽는 시간: 10분 · 버전: v0.1 (2026-09-30) · 2장
| 이 장의 질문 | Git, GitHub, GitHub Desktop은 각각 무엇이고 어떻게 다른가 |
|---|---|
| 다루는 것 | 세 가지의 정체와 관계, 저장소, 로컬과 원격, 공개와 비공개, Git이 잘 다루는 파일 |
| 다루지 않는 것 | 계정과 설치(3~5장), 커밋과 푸시의 실제 방법(6장) |
| 이 장을 마치면 | "Git과 GitHub는 무엇이 다른가"에 한 문장으로 답할 수 있습니다 |
1. Git: 변경 이력을 기록하는 프로그램
Git(깃) 은 폴더 안 파일들의 변경 이력을 기록하는 프로그램입니다. 내 PC에 설치되어 돌아가고, 인터넷이 없어도 작동합니다. 무료이며 전 세계에서 가장 많이 쓰이는 버전 관리 프로그램입니다.
Git이 하는 일은 두 가지입니다.
- 내가 "여기까지" 하고 커밋(commit) 하면, 그 순간의 파일 상태와 바뀐 부분을 기록합니다.
- 기록해 둔 시점들을 나중에 비교하거나, 잘못된 변경을 취소할 수 있게 합니다.
Git은 파일이 바뀌는 매 순간을 알아서 기록하지 않습니다. 커밋한 시점만 기록에 남습니다.
2. 저장소: Git이 관리하는 폴더
Git이 기록을 관리하는 폴더를 저장소(repository, 줄여서 repo) 라고 합니다. 보통 프로젝트 하나에 저장소 하나를 둡니다.
저장소는 평범한 폴더와 똑같이 생겼습니다. 다른 점은 안에 .git 이라는 숨은 폴더가 있다는 것뿐입니다. Git의 기록은 전부 이 안에 쌓입니다.
my-first-repo/ ← 저장소 (폴더 하나)
├─ .git/ ← Git의 기록. 숨은 폴더이며 직접 열거나 고치지 않습니다
├─ README.md ← 저장소 소개 파일
└─ 회의록-양식.md
.git폴더를 지우면 기록이 모두 사라지고 평범한 폴더가 됩니다.README.md는 저장소를 소개하는 파일입니다. GitHub에서 저장소를 열면 이 파일의 내용이 첫 화면에 보입니다.
기록이 쌓이면 이런 모습입니다. GitHub Desktop의 History 탭이 이 목록을 보여 줍니다.
커밋 번호 작성자 시각 메모
c3d4e5f 홍길동 10/07 14:10 회의록 양식에 참석자 칸 추가
a1b2c3d 홍길동 10/07 11:02 회의록 양식 추가
9f8e7d6 홍길동 10/06 16:45 Initial commit
커밋 번호는 Git이 자동으로 붙이는 고유한 값입니다. 외울 필요는 없고, 특정 커밋을 가리킬 때 씁니다. 가장 아래의 Initial commit 은 저장소를 처음 만들 때 생기는 첫 기록입니다.
3. GitHub: 저장소를 인터넷에 보관하는 서비스
GitHub(깃허브) 는 Git 저장소를 인터넷에 보관하고 다른 사람과 함께 볼 수 있게 해 주는 웹 서비스입니다.
- 내 PC에 있는 저장소를 로컬 저장소, GitHub에 있는 같은 저장소를 원격 저장소라고 합니다.
- 두 저장소는 저절로 맞춰지지 않습니다. 내 기록을 올리는 푸시(push) 와, 원격 저장소의 새 기록을 받는 풀(pull) 로 맞춥니다.
- GitHub Desktop 버튼에 나오는
origin은 원격 저장소를 부르는 별명입니다.Push origin은 "원격 저장소로 올리기"라는 뜻입니다.
Git은 GitHub 전용이 아닙니다. GitLab, Bitbucket 같은 비슷한 서비스나 회사 서버에서도 똑같이 쓰입니다. Git은 도구이고, GitHub는 그 도구로 만든 기록을 보관하는 여러 장소 중 하나입니다.
4. GitHub Desktop: Git을 버튼으로 쓰는 프로그램
Git은 원래 명령어를 입력해서 쓰는 프로그램입니다. GitHub Desktop 은 그 명령어들을 버튼으로 바꿔 놓은 프로그램입니다. 버튼을 누르면 GitHub Desktop이 뒤에서 Git을 대신 움직입니다.
| 하고 싶은 일 | GitHub Desktop에서 |
|---|---|
| 바뀐 파일 보기 | Changes 탭 |
| 지난 기록 보기 | History 탭 |
| 커밋하기 | 화면 왼쪽 아래 Commit 버튼 |
| 올리기 / 받기 | 화면 위쪽 Push origin / Pull origin 버튼 |
Git을 쓰는 방법은 이것 말고도 명령어, 편집기(VS Code)에 내장된 기능, GitHub 웹사이트 등 여러 가지가 있습니다. 섞어 쓰면 같은 일을 여러 이름으로 배우게 되므로 이 튜토리얼은 GitHub Desktop 하나로 진행합니다. 인터넷 검색 결과에 git 으로 시작하는 명령어가 나와도 따라 입력하지 않아도 됩니다.
5. 공개 저장소와 비공개 저장소
GitHub의 저장소는 둘 중 하나로 만듭니다.
| 종류 | 누가 볼 수 있나 |
|---|---|
| 공개 (Public) | 인터넷의 누구나 |
| 비공개 (Private) | 나와, 내가 허락한 계정만 |
비공개는 "허락받은 계정만 볼 수 있다"는 뜻입니다. 특정 건물이나 회사 네트워크 안에서만 열린다는 뜻은 아닙니다. 계정의 비밀번호와 로그인 보안이 곧 저장소의 보안이 됩니다. 3장에서 2단계 인증을 켜는 이유입니다.
어느 쪽이든 비밀번호, 개인정보, 외부에 나가면 안 되는 자료는 저장소에 넣지 않습니다. 한번 커밋한 파일은 나중에 지워도 기록에 남기 때문입니다.
6. Git이 잘 다루는 파일, 잘 못 다루는 파일
Git은 어떤 파일이든 기록할 수 있지만, 무엇이 바뀌었는지 줄 단위로 보여 주는 것은 글자로 된 파일(텍스트 파일)뿐입니다.
텍스트 파일(.md, .txt, .html, .csv 등)을 고치면 바뀐 줄이 이렇게 보입니다. - 는 지워진 줄, + 는 추가된 줄입니다.
# 회의록 양식
- 참석자:
+ 참석자: (이름, 소속)
안건:
한글(HWP), 워드, 엑셀, PDF, 이미지 같은 파일은 텍스트가 아닙니다. 이런 파일도 기록은 되지만 바뀌었다는 사실만 보이고 무엇이 바뀌었는지는 보이지 않습니다. 크기가 큰 파일은 GitHub에 올라가지 않을 수도 있습니다(한 파일 100MB 초과 시).
| 파일 | Git에서 |
|---|---|
.md, .txt, .html, .csv, 코드 파일 | 바뀐 줄까지 보임. Git에 적합 |
.hwp, .docx, .xlsx, .pdf, 이미지 | 바뀌었다는 사실만 보임 |
| 동영상, 대용량 자료 | Git에 넣지 않는 것이 좋음 |
이 튜토리얼의 실습은 모두 .md 파일로 합니다. .md 는 마크다운(Markdown) 이라는 형식의 텍스트 파일로, # 을 붙이면 제목, - 를 붙이면 목록이 되는 식의 간단한 규칙으로 문서를 씁니다.
# 회의록 양식 ← 제목
- 참석자: ← 목록
- 안건:
7. 용어 정리
| 용어 | 뜻 |
|---|---|
| Git (깃) | 폴더의 변경 이력을 기록하는 프로그램. 내 PC에서 돌아감 |
| 저장소 (repository) | Git이 관리하는 폴더. 안에 .git 기록 폴더가 있음 |
| 커밋 (commit) | "여기까지" 하고 기록을 남기는 것. 한 줄 메모를 함께 남김 |
| 로컬 저장소 / 원격 저장소 | 내 PC의 저장소 / GitHub에 있는 같은 저장소 |
| 푸시 (push) / 풀 (pull) | 원격 저장소로 올리기 / 원격 저장소에서 받기 |
| origin | 원격 저장소의 별명 |
| GitHub (깃허브) | 저장소를 인터넷에 보관하고 함께 보는 서비스 |
| GitHub Desktop | Git을 버튼으로 쓰게 해 주는 프로그램 |
| 공개 / 비공개 | 누구나 볼 수 있음 / 허락한 계정만 볼 수 있음 |