Git과 GitHub 차이: 깃허브에 올려 달라는 말은 무슨 뜻일까
Git은 내 컴퓨터의 변경 기록 도구, GitHub는 그 기록을 올려 함께 일하는 온라인 서비스입니다.
한국어English

기준: Git 공식 사이트와 Pro Git 책, GitHub 공식 문서와 블로그(2008년, 2018년, 2025년 글), Microsoft 공식 발표(2018년). 2026년 9월에 확인했습니다.
Git과 GitHub는 이름은 비슷하지만 서로 다른 것입니다. Git은 파일이 바뀐 기록을 내 컴퓨터 안에 차곡차곡 남기는 무료 프로그램이고, GitHub는 그 기록을 인터넷에 올려 두고 다른 사람과 함께 보고 고치는 온라인 서비스입니다. 이 글에서는 버전 관리가 무엇인지, Git과 GitHub가 각각 무엇을 하는지, 둘의 차이를 한눈에 비교한 표, 그리고 처음 쓸 때 조심할 점과 흔한 오해까지 차례로 정리합니다.
출발점: "보고서_진짜최종.hwp" 문제
과제나 디자인 작업을 하다 보면 "보고서_최종.hwp", "보고서_최종_수정.hwp", "보고서_진짜최종.hwp"처럼 파일 이름이 점점 길어지는 경험을 흔히 합니다. 어느 파일이 가장 새것인지, 어제 무엇을 바꿨는지, 그제 버전으로 돌아가려면 어떤 파일을 열어야 하는지 헷갈리기 쉽습니다.
이 문제를 체계적으로 풀어 주는 것이 버전 관리(version control)입니다. 버전 관리는 파일이나 파일 묶음의 변경 내용을 시간 순서로 기록해 두었다가, 나중에 특정 버전을 다시 불러올 수 있게 하는 시스템입니다.
버전 관리를 쓰면 다음과 같은 일을 할 수 있습니다.
- 파일 하나 또는 프로젝트 전체를 이전 상태로 되돌리기
- 시간에 따라 무엇이 바뀌었는지 비교하기
- 문제가 생긴 부분을 누가 언제 바꿨는지 확인하기
- 실수로 지우거나 망가뜨린 파일을 복구하기
버전 관리는 프로그래머만의 도구가 아닙니다. 이미지나 레이아웃의 모든 버전을 남겨 두고 싶은 그래픽·웹 디자이너에게도 쓸모가 있습니다.
버전 관리의 세 가지 방식
버전 관리 도구는 기록을 어디에 두느냐에 따라 나뉩니다. 내 컴퓨터 한 대에만 두는 로컬 방식(예: RCS)은 간단하지만 남과 나누기 어렵습니다. 서버 한 곳에 모아 두는 중앙집중형(예: CVS, Subversion)은 함께 일하기 좋지만, 서버가 멈추면 그동안 아무도 함께 작업할 수 없습니다.
Git이 속한 분산형(예: Git, Mercurial)은 참여자 모두가 저장소 전체와 모든 이력을 통째로 복제해 가집니다. 그래서 한 사람 한 사람의 복제본이 그대로 전체 백업이 되고, 서버가 고장 나도 누군가의 복제본으로 되살릴 수 있습니다.
Git: 내 컴퓨터 안의 변경 기록 도구
Git은 작은 프로젝트부터 아주 큰 프로젝트까지 빠르고 효율적으로 다루도록 설계된 무료 오픈소스 분산 버전 관리 시스템입니다. 여기서 오픈소스란 프로그램의 설계도(소스 코드)가 공개되어 누구나 보고 쓸 수 있다는 뜻입니다.
만든 사람과 이유
Git은 2005년 리누스 토르발스(Linus Torvalds)와 리눅스(Linux) 개발 커뮤니티가 만들었습니다. 리눅스 커널 프로젝트는 원래 BitKeeper라는 상용 도구를 쓰고 있었는데, 이 도구의 무료 사용이 중단되자 직접 새 도구를 만들기로 한 것입니다. 이때 세운 목표는 빠른 속도, 단순한 설계, 수많은 갈래 작업(브랜치)을 동시에 다루는 능력, 완전한 분산 구조, 큰 프로젝트도 효율적으로 처리하는 것이었습니다.
사진처럼 통째로 기록하는 방식
Git은 "무엇이 바뀌었는지"만 따로 적는 대신, 기록할 때마다 프로젝트 전체의 모습을 스냅숏(사진)으로 저장합니다. 바뀌지 않은 파일은 다시 저장하지 않고 이전에 저장한 파일을 가리키기만 해서 공간을 아낍니다. 이렇게 한 번 기록하는 일을 커밋(commit)이라고 부릅니다.
Git은 저장하는 모든 내용에 지문 같은 확인 번호를 붙입니다. 사람마다 지문이 다르듯, 내용이 한 글자만 달라져도 번호가 완전히 달라집니다. 그래서 Git 모르게 파일 내용을 바꿀 수 없습니다. 또 대부분의 작업이 데이터를 "더하기만" 하는 방식이라, 한 번 커밋한 내용은 잃어버리기 매우 어렵습니다.
인터넷 없이 하는 작업
Git의 거의 모든 작업은 내 컴퓨터 안에서 일어납니다. 이력 보기, 바뀐 곳 비교하기, 커밋하기는 인터넷이 끊겨 있어도 할 수 있습니다.
파일의 세 가지 상태
Git에서 파일은 다음 세 상태를 오갑니다. 택배를 보내는 과정과 비슷합니다.
| 상태 | 뜻 | 머무는 곳 | 택배 비유 |
|---|---|---|---|
| 수정됨(modified) | 파일을 고쳤지만 아직 기록하지 않음 | 작업 폴더 | 보낼 물건을 고르는 중 |
| 스테이지됨(staged) | 다음 커밋에 넣기로 표시함 | 스테이징 영역 | 물건을 상자에 담아 둠 |
| 커밋됨(committed) | 내 컴퓨터의 Git 데이터베이스에 안전하게 저장됨 | .git 폴더 | 송장을 붙여 발송을 확정함 |
상자에 담는 단계가 따로 있기 때문에, 여러 파일을 고쳤더라도 그중 일부만 골라 한 번의 기록으로 묶을 수 있습니다.
GitHub: 기록을 올려 함께 일하는 온라인 서비스
GitHub 공식 문서의 구분으로는 Git은 파일의 변경을 추적하는 버전 관리 시스템이고, GitHub는 계획부터 배포·운영까지 소프트웨어 개발 과정 전체를 지원하는 플랫폼입니다. 여기서 플랫폼은 여러 기능을 한곳에 모아 두고 많은 사람이 그 위에서 일하게 해 주는 바탕 서비스를, 배포는 완성한 결과물을 실제 사용자가 쓸 수 있는 곳(예: 웹사이트)에 내놓는 일을 말합니다.
GitHub는 오픈소스인 Git을 바탕으로 만들어졌고, Git 프로젝트를 클라우드(인터넷 너머의 서버)에 보관해 주면서 함께 일하기 위한 도구를 더합니다. 이렇게 남의 파일을 서버에 맡아 보관하고 인터넷으로 열어 주는 일을 호스팅, 그런 서비스를 호스트라고 부릅니다. 건물 주인이 공간을 빌려주는 것과 비슷합니다.
운영하는 곳
GitHub는 2008년 4월 정식 서비스를 시작했습니다. 이후 마이크로소프트가 2018년 6월 인수를 발표했고, 같은 해 10월 인수를 마쳤습니다. 인수 당시 두 회사는 GitHub를 독립적으로 운영하겠다고 밝혔지만, 2025년 8월 GitHub는 앞으로 마이크로소프트 CoreAI 조직의 일부로 일을 이어 간다고 알렸습니다. Git은 리눅스 개발 커뮤니티에서 나온 도구이고, GitHub는 한 회사가 만든 서비스입니다. 둘은 뿌리부터 다릅니다.
저장소와 공개 범위
GitHub에서 가장 기본이 되는 단위는 저장소(repository)입니다. 코드와 파일, 그리고 각 파일의 수정 이력을 담는 폴더입니다. 저장소에는 누가 볼 수 있는지 정하는 공개 범위가 있습니다.
| 공개 범위 | 볼 수 있는 사람 |
|---|---|
| 공개(public) | 인터넷의 모든 사람 |
| 비공개(private) | 나와 내가 접근 권한을 준 사람. 조직(회사·단체) 저장소라면 권한이 있는 조직 구성원과 조직 소유자도 볼 수 있음 |
| 내부(internal) | GitHub Enterprise Cloud의 기업 계정 구성원 |
함께 일하는 도구
- 풀 리퀘스트(pull request): "내가 바꾼 내용을 프로젝트에 합쳐 주세요"라는 제안입니다. 다른 사람이 바뀐 부분을 검토하고 의견을 나눈 뒤 합칩니다.
- 이슈(issue): 해야 할 일이나 발견한 문제를 적어 두고 진행 상황을 추적하는 게시글입니다.
내 컴퓨터와 GitHub를 잇는 말
내 컴퓨터 밖에 있는 저장소를 Git에서는 원격 저장소(remote)라고 부릅니다. GitHub에 올려 둔 저장소가 대표적인 원격 저장소입니다. 둘 사이를 오가는 명령은 세 가지만 알면 됩니다.
- 올리기(
push): 내 커밋을 원격 저장소로 보냅니다. - 받아 오기(
fetch): 원격 저장소의 새 내용을 가져오기만 하고, 내 작업에는 아직 섞지 않습니다. - 받아서 합치기(
pull): 가져온 뒤 내 작업과 바로 합칩니다.
"깃허브에 올려 주세요"라는 말은 대개 내 컴퓨터에서 Git으로 기록한 커밋을 GitHub 저장소로 push해 달라는 뜻입니다.
Git과 GitHub 차이 한눈에 보기
둘의 차이는 사진 앨범과 사진 공유 서비스의 차이와 같습니다. Git은 내 방 책장에 꽂힌 시간순 사진 앨범입니다. 커밋할 때마다 프로젝트 전체를 한 장의 사진으로 찍어 앨범에 붙입니다. GitHub는 그 앨범을 온라인에 올려 가족이나 동료와 함께 보고, 댓글을 달고, 새 사진을 보태도록 해 주는 서비스입니다. 앨범은 인터넷 없이도 넘겨 볼 수 있지만, 멀리 있는 사람과 나누려면 공유 서비스가 필요합니다.
| 항목 | Git | GitHub |
|---|---|---|
| 정체 | 버전 관리 프로그램 | Git 저장소를 보관하고 협업 도구를 주는 온라인 플랫폼 |
| 만든 곳 | 2005년 리누스 토르발스와 리눅스 개발 커뮤니티 | 2008년 서비스를 시작한 회사 GitHub. 2018년 마이크로소프트가 인수했고, 2025년 8월 마이크로소프트 CoreAI 조직 편입 발표 |
| 있는 곳 | 내 컴퓨터에 설치 | 인터넷(웹사이트) |
| 인터넷 필요 | 대부분의 작업에 필요 없음 | 올리고 받을 때 필요 |
| 비용 | 무료 오픈소스 | 서비스 요금제에 따라 다름(공식 요금 안내 확인) |
둘 다 대신할 수 있는 것이 있습니다. Git 자리에는 Mercurial이나 Subversion 같은 다른 버전 관리 도구를 쓸 수 있고, GitHub 자리에는 다른 Git 호스팅 서비스나 직접 운영하는 서버를 쓸 수 있습니다. Pro Git도 GitHub를 가장 큰 Git 호스트로 소개하면서, Git 저장소를 맡길 수 있는 선택지가 수십 가지 있다고 적습니다. 즉 GitHub는 Git을 쓰는 여러 방법 가운데 하나입니다.
함께 쓰는 흐름 예: 웹사이트 고치기
웹사이트를 운영할 때 Git과 GitHub를 함께 쓰는 흐름은 아래와 같습니다.
- 내 컴퓨터에서 사이트의 글이나 코드를 고칩니다.
- Git으로 커밋해 변경을 기록합니다.
- 그 기록을 GitHub 비공개 저장소에
push합니다. - 저장소와 연결된 배포 서비스가 새 버전을 알아채고 자동으로 사이트에 게시합니다.
비밀번호나 인증 키 같은 비밀 정보는 저장소에 올리지 않도록 따로 관리합니다. 이 원칙은 아래 "처음 쓸 때 주의할 점" 절에서 설명합니다.
처음 쓸 때 주의할 점
비밀 파일은 .gitignore로 빼기
.gitignore는 Git이 기록하지 않았으면 하는 파일의 이름이나 패턴을 적어 두는 파일입니다. 로그 파일이나 빌드 결과물(프로그램을 실행 가능한 형태로 만들 때 자동으로 생기는 파일)이 대표적인 예입니다.
예를 들어 비밀 키를 .env라는 파일에 담아 두었다면, .gitignore에 다음 한 줄만 적으면 됩니다.
.env
그러면 .env 파일은 커밋할 때 기록 대상에서 빠집니다.
이미 커밋한 파일: .gitignore는 아직 기록하지 않은 파일에만 효과가 있습니다. 이미 커밋한 파일을 무시하려면 먼저 git rm --cached 명령으로 그 파일을 추적 대상에서 빼야 합니다. 추적에서 빼더라도 과거 커밋 이력에는 그 파일이 그대로 남습니다. 그래서 비밀번호나 토큰을 실수로 올렸다면 가장 먼저 그 비밀을 폐기하거나 새로 바꾸세요. 저장소를 비공개로 두더라도, 처음부터 비밀 정보가 이력에 들어가지 않게 하는 편이 안전합니다.
큰 파일 제한
GitHub는 아무 파일이나 무제한으로 받아 주는 백업 창고가 아닙니다. 제한은 다음과 같습니다. 여기서 MiB는 컴퓨터식 용량 단위로, 1MiB는 약 1.05MB입니다. 대략 MB와 같다고 봐도 됩니다.
| 경우 | 기준 |
|---|---|
| Git이 경고하는 파일 크기 | 50MiB 초과 |
| GitHub가 막는 파일 크기 | 100MiB 초과 |
| 브라우저로 올릴 수 있는 파일 크기 | 25MiB까지 |
| 권장 저장소 크기 | 이상적으로 1GB 미만, 5GB 미만을 강하게 권장 |
Blender 작업 파일이나 렌더한 영상처럼 용량이 큰 파일을 다룬다면 이 제한에 걸리기 쉽습니다. 이런 파일에는 Git LFS(Large File Storage, 큰 파일 전용 저장 방식)를 쓰고, 큰 프로그램 파일을 나눠 줄 때는 GitHub Releases를 씁니다. 수치는 바뀔 수 있으니 올리기 전에 공식 문서를 다시 확인하세요.
흔한 오해 세 가지
- "Git과 GitHub는 같은 것이다. GitHub가 Git을 만들었다." Git은 2005년 리눅스 개발 커뮤니티가 만든 무료 오픈소스 도구이고, GitHub는 2008년 그 위에 만든 보관·협업 서비스입니다.
- "Git을 쓰려면 GitHub 계정과 인터넷이 꼭 있어야 한다." Git은 계정 없이 내 컴퓨터에서 거의 모든 작업을 합니다. 원격 저장소는 선택 사항이고, GitHub가 아닌 다른 호스팅 서비스나 같은 컴퓨터 안의 다른 폴더도 원격 저장소가 될 수 있습니다.
- "GitHub에 올리면 모두에게 공개된다." 비공개 저장소로 만들면 권한을 받은 사람만 볼 수 있습니다(조직 저장소는 "저장소와 공개 범위" 절의 표를 보세요). 공개로 만들면 누구나 볼 수 있으니, 만들 때 공개 범위를 꼭 확인하세요.
정리
- Git: 내 컴퓨터에서 파일 변경을 사진처럼 기록하는 무료 도구입니다.
- GitHub: 그 기록을 인터넷에 올려 보관하고, 다른 사람과 검토·협업하게 해 주는 서비스입니다.
- 둘은 함께 쓰는 경우가 많지만, Git은 GitHub 없이도 쓸 수 있습니다.
- 올릴 때는 공개 범위, 비밀 파일, 파일 크기 제한 세 가지를 먼저 확인하세요.
참고 자료
- Git 공식 사이트 (git-scm.com)
- Pro Git, About Version Control
- Pro Git, A Short History of Git
- Pro Git, What is Git?
- Pro Git, Recording Changes to the Repository
- Pro Git, Working with Remotes
- Pro Git, Third Party Hosted Options
- GitHub Docs, About GitHub and Git
- GitHub Docs, About repositories
- GitHub Docs, About pull requests
- GitHub Docs, Ignoring files
- GitHub Docs, Removing sensitive data from a repository
- GitHub Docs, About large files on GitHub
- GitHub 공식 블로그, We launched (2008-04-10)
- Microsoft 공식 발표, Microsoft to acquire GitHub for $7.5 billion (2018-06-04)
- GitHub 공식 블로그, GitHub and Microsoft (인수 완료 2018-10-26)
- GitHub 공식 블로그, Auf Wiedersehen, GitHub (2025-08-11)





