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의 원격 저장소가 푸시와 풀로 이어지고, GitHub Desktop이 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 DesktopGit을 버튼으로 쓰게 해 주는 프로그램
공개 / 비공개누구나 볼 수 있음 / 허락한 계정만 볼 수 있음

8. 확인 문제

① Git과 GitHub의 차이를 한 문장으로 말하면? Git은 내 PC에서 변경 이력을 기록하는 프로그램이고, GitHub는 그 기록(저장소)을 인터넷에 보관하고 함께 보는 서비스입니다.
② 파일을 고치고 저장했습니다. Git의 기록에 남았을까요? 아직 남지 않았습니다. Git은 커밋한 시점만 기록합니다.
③ 내 PC에서 커밋했습니다. GitHub에도 바로 보일까요? 아니요. 로컬 저장소와 원격 저장소는 저절로 맞춰지지 않습니다. 푸시해야 GitHub에 올라갑니다.
④ 엑셀 파일을 고치고 커밋했습니다. 어느 셀이 바뀌었는지 Git에서 볼 수 있을까요? 볼 수 없습니다. 엑셀은 텍스트 파일이 아니라서 바뀌었다는 사실만 보입니다.
⑤ 비공개 저장소는 회사 밖에서는 열리지 않나요? 아닙니다. 비공개는 허락한 계정만 볼 수 있다는 뜻이고, 접속 장소와는 관계없습니다. 그래서 계정 보안이 중요합니다.

다음 장

3장. GitHub 계정 준비

© KYONGHO ENGINEERING & ARCHITECTS