깃허브 사용법 초보자 가이드 완전정리
목차
깃허브(GitHub)는 깃(Git)이라는 버전 관리 시스템으로 작성한 코드를 온라인 저장소에 올려 백업하고, 여러 사람과 함께 협업할 수 있게 해주는 서비스입니다. 처음 접하면 '로컬 저장소'니 '커밋'이니 하는 용어부터 낯설게 느껴지지만, 실제로 손에 익히는 데 걸리는 명령어는 몇 개 되지 않습니다. 이 글에서는 깃허브 가입부터 레포지토리 생성, 내 컴퓨터와 연결, 코드 업로드까지 순서대로 따라 하면서 초보자가 막히기 쉬운 지점을 짚어 드립니다.
깃(Git)과 깃허브(GitHub)는 어떻게 다른가
많은 입문자가 두 용어를 같은 것으로 오해하지만, 역할이 명확히 다릅니다.
깃(Git) — 버전 관리 도구
깃은 내 컴퓨터에 설치해서 쓰는 프로그램입니다. 파일이 바뀔 때마다 그 변경 내역을 기록해 두었다가, 필요하면 언제든 예전 버전으로 되돌릴 수 있게 해줍니다. 코드가 꼬여서 정상 작동하던 시점으로 돌아가고 싶을 때, 혹은 누가 언제 무엇을 바꿨는지 추적하고 싶을 때 깃의 기록(커밋 히스토리)이 그대로 답이 됩니다.
깃허브(GitHub) — 원격 저장소 서비스
깃허브는 깃으로 관리한 코드를 인터넷상의 서버에 올려두는 서비스입니다. 내 컴퓨터(로컬 저장소)에서만 작업하면 그 컴퓨터가 고장 나는 순간 코드가 사라질 위험이 있고, 다른 사람과 공유하기도 어렵습니다. 깃허브에 저장소를 만들어 코드를 올려두면 어디서든 내려받을 수 있고, 팀원들과 각자 작업한 내용을 하나로 합치는 것도 훨씬 수월해집니다.
정리하면 깃=버전관리 도구(로컬), 깃허브=그 기록을 저장·공유하는 온라인 서비스(원격)입니다. 깃 없이 깃허브만 쓰거나 그 반대로 쓸 수는 없고, 둘은 항상 짝을 이뤄 동작합니다.
깃허브 시작 전 준비: 가입과 깃 설치
깃허브 계정 만들기
깃허브를 쓰려면 가장 먼저 깃허브 공식 홈페이지에 접속해 회원가입부터 해야 합니다. 홈페이지 우측 상단의 'Sign up' 버튼을 누른 뒤 이메일 주소, 비밀번호, 사용자명(username)만 차례로 입력하면 몇 분 안에 무료 계정이 만들어집니다. 가입 과정에서 이메일 인증을 한 번 거치므로, 실제로 받아볼 수 있는 이메일 주소로 가입하는 것이 좋습니다. 사용자명은 이후 프로필 URL(github.com/사용자명)에 그대로 노출되므로, 이력서나 포트폴리오 링크로 활용할 계획이라면 처음부터 신중하게 정하는 편이 좋습니다.
무료 플랜과 유료 플랜은 무엇이 다를까
가입 단계에서 요금제를 고르게 되는데, 결론부터 말하면 개인 사용자는 무료 플랜(Free)만으로도 충분합니다. 무료 플랜에서도 공개(Public)·비공개(Private) 저장소를 개수 제한 없이 만들 수 있고, 이 글에서 다루는 커밋·푸시·클론·풀 리퀘스트 같은 핵심 기능이 모두 포함됩니다. 개인 학습, 포트폴리오, 소규모 사이드 프로젝트라면 결제 없이 무료 플랜으로 시작하면 됩니다.
반면 유료 플랜(Team·Enterprise 등)은 여러 명이 함께 쓰는 조직을 위한 것입니다. 무료로도 되는 기능을 잠가두고 파는 방식이 아니라, 조직 단위 협업에 필요한 요소가 더해지는 구조입니다.
- 비공개 저장소에서의 세밀한 접근 권한·팀 관리
- 자동화 도구(GitHub Actions)의 더 넉넉한 실행 시간
- 보안 점검·감사 로그 등 조직용 관리 기능
즉 '혼자 공부하는 단계'에서는 유료로 올릴 이유가 거의 없으니, 일단 무료 플랜으로 가입해 익숙해진 뒤 필요할 때 조직 요금제를 검토하면 됩니다.
내 컴퓨터에 깃 설치 확인하기
깃허브 가입만으로는 아무것도 할 수 없습니다. 실제 코드 작업은 내 컴퓨터에 설치된 깃 프로그램이 담당하기 때문입니다. 터미널(윈도우는 명령 프롬프트나 Git Bash, macOS는 터미널)을 열어 아래 명령어로 설치 여부를 확인합니다.
git --version버전 번호가 출력되면 이미 설치돼 있는 것이고, 명령어를 인식하지 못한다는 오류가 뜨면 공식 배포 사이트에서 운영체제에 맞는 설치 파일을 받아 설치해야 합니다. 설치 후에는 커밋 기록에 남을 이름과 이메일을 아래처럼 전역 설정해 둡니다.
git config --global user.name "본인이름"
git config --global user.email "본인이메일@example.com"
레포지토리(저장소) 만들고 연결하기
깃허브에서 원격 저장소 생성
깃허브 우측 상단의 '+' 버튼 또는 New repository 메뉴로 새 저장소를 만듭니다. 이때 결정할 항목은 크게 세 가지입니다.
- Repository name — 프로젝트를 나타내는 이름(영문·하이픈 권장, 공백은 피하는 것이 안전)
- Public/Private — 전체 공개할지, 초대한 사람만 볼 수 있게 할지 선택
- README, .gitignore, License 포함 여부 — 처음 만들 때 함께 생성할지 선택 항목
README와 .gitignore, 처음부터 넣는 게 좋은 이유
README 파일은 이 저장소가 어떤 프로젝트인지 설명하는 문서로, 깃허브 저장소 메인 화면에 자동으로 표시됩니다. 나중에 어떤 코드였는지 기억이 안 날 때, 혹은 협업자가 처음 프로젝트를 열어볼 때 가장 먼저 읽는 파일이므로 처음부터 만들어 두는 편을 권합니다.
.gitignore는 버전 관리에 포함시키지 않을 파일·폴더 목록을 지정하는 파일입니다. 빌드 결과물, 환경 변수 파일(.env), node_modules 같은 의존성 폴더는 용량만 크고 굳이 저장소에 올릴 필요가 없는 것들인데, .gitignore에 등록해 두면 실수로 커밋되는 것을 막을 수 있습니다. 언어·프레임워크별 기본 템플릿을 깃허브가 생성 시점에 제공하므로 자신의 개발 환경에 맞는 것을 선택하면 됩니다.
로컬 저장소와 원격 저장소 연결하기
저장소가 만들어지면 상단 Code 버튼을 눌러 저장소 주소(HTTPS 또는 SSH)를 복사합니다. 아직 로컬에 아무 폴더도 없다면 아래처럼 통째로 내려받으면(clone) 됩니다.
git clone https://github.com/사용자명/저장소이름.git반대로 이미 작업 중이던 폴더가 있고 그 폴더를 새 저장소와 연결하려면 아래 순서를 따릅니다.
git init— 현재 폴더를 깃이 관리하는 로컬 저장소로 초기화git add .— 변경된 파일 중 저장소에 올릴 파일을 선택(전체 선택 시.)git commit -m "첫 커밋 메시지"— 선택한 파일들을 하나의 기록 단위(커밋)로 저장git remote add origin https://github.com/사용자명/저장소이름.git— 로컬 저장소에 원격 저장소 주소 등록git push -u origin main— 로컬의 커밋 내역을 원격 저장소로 업로드
여기서 add는 '변경사항을 커밋 후보로 등록', commit은 '그 후보들을 하나의 버전으로 확정', push는 '확정된 버전을 원격 저장소로 전송'하는 단계라고 구분해서 기억하면 순서가 헷갈리지 않습니다.
초보자가 자주 만나는 상황과 대처법
브랜치(branch)는 왜 필요한가
브랜치는 원본 코드(보통 main)를 건드리지 않고 별도의 작업 공간을 만드는 기능입니다. 새 기능을 시험 삼아 추가하다가 문제가 생겨도 main 브랜치는 그대로 안전하게 남아 있으므로, 실무에서는 기능 단위로 브랜치를 나눠 작업하는 것이 기본입니다.
git checkout -b feature-login위 명령으로 feature-login이라는 새 브랜치를 만들고 그 브랜치로 이동합니다. 작업이 끝나면 main 브랜치에 병합(merge)하거나, 협업 중이라면 풀 리퀘스트(Pull Request)를 올려 다른 사람의 검토를 받은 뒤 합치는 방식을 사용합니다.
push가 거부될 때
원격 저장소에 내가 모르는 새 커밋이 먼저 올라가 있으면 push가 거부되는 경우가 있습니다. 이때는 먼저 git pull로 원격의 최신 내용을 받아온 뒤 다시 push해야 하며, 충돌(conflict)이 발생하면 표시된 파일을 열어 어느 내용을 남길지 직접 정리해야 합니다.
커밋 메시지는 어떻게 써야 할까
"수정", "업데이트" 같은 모호한 메시지보다 무엇을 왜 바꿨는지 짧게라도 남기는 습관이 나중에 큰 도움이 됩니다. 흔히 쓰는 방식은 fix: 로그인 오류 수정, feat: 회원가입 기능 추가처럼 앞에 작업 유형을 붙이는 컨벤션입니다. 처음부터 완벽하게 지킬 필요는 없지만, 한 줄만이라도 구체적으로 적는 습관을 들이면 이후 코드 히스토리를 훑어볼 때 훨씬 편해집니다.
실수했을 때 되돌리는 방법
초보자가 가장 당황하는 순간은 잘못된 파일을 커밋했거나, 지워야 할 파일을 실수로 올렸을 때입니다.
| 상황 | 대처 명령어 |
|---|---|
| 아직 커밋 전, 변경사항만 취소하고 싶을 때 | git checkout -- 파일명 |
| add까지 했지만 커밋 전으로 되돌리고 싶을 때 | git reset 파일명 |
| 가장 최근 커밋 메시지만 수정하고 싶을 때 | git commit --amend |
| 이미 push까지 된 커밋을 되돌리고 싶을 때 | git revert 커밋해시 |
주의: 이미 원격 저장소(push)에 올라간 커밋을git reset으로 강제로 지우면 협업자의 기록과 충돌할 수 있습니다. 여럿이 함께 쓰는 저장소라면 되돌릴 때는 기존 이력을 보존하는git revert를 우선 고려하는 것이 안전합니다.
레포지토리를 꾸준히 관리하는 습관
정기적으로 작은 단위로 커밋하기
한꺼번에 많은 변경사항을 하나의 커밋에 몰아넣으면, 나중에 문제가 생겼을 때 어느 지점에서 잘못됐는지 찾기 어렵습니다. 기능 하나, 버그 수정 하나 단위로 자주 커밋해 두면 문제 발생 시 되돌릴 지점을 정확히 찾을 수 있습니다.
README를 프로젝트가 끝날 때까지 업데이트하기
처음 만들 때 넣어둔 README를 그대로 방치하지 말고, 프로젝트 진행 상황이나 실행 방법이 바뀔 때마다 갱신해 두면 나중에 본인이 다시 봐도, 다른 사람이 봐도 빠르게 이해할 수 있습니다.
- 커밋 단위는 작게, 메시지는 구체적으로
- .gitignore로 불필요한 파일이 저장소에 섞이지 않도록 관리
- 브랜치를 활용해 실험적인 작업과 완성된 코드를 분리
자주 묻는 질문
Q. 깃허브는 유료인가요?
개인 사용자 기준으로 무제한 개수의 공개(Public)·비공개(Private) 저장소를 무료로 사용할 수 있습니다. 협업 인원 수나 고급 기능(예: 세밀한 접근 권한 관리, 추가 저장 용량)이 필요한 조직 단위 사용자는 유료 플랜을 선택하기도 하지만, 개인 학습이나 포트폴리오 용도라면 무료 플랜으로 충분합니다.
Q. git과 GitHub 데스크톱 앱을 꼭 명령어로만 써야 하나요?
아닙니다. GitHub Desktop이나 여러 코드 에디터에 내장된 깃 기능을 사용하면 마우스 클릭만으로 add·commit·push를 처리할 수 있습니다. 다만 명령어 흐름을 한 번은 직접 익혀두면 협업 중 발생하는 충돌 해결이나 예외 상황에서 훨씬 수월하게 대응할 수 있습니다.
Q. 커밋을 안 하고 파일만 저장해도 되나요?
파일 저장은 컴퓨터 안에서만 이뤄지는 작업이고, 커밋은 그 상태를 깃의 버전 기록으로 남기는 별개의 절차입니다. 저장만 하고 커밋하지 않으면 깃은 그 변경을 추적하지 않으므로, 되돌리기나 이력 확인이 필요한 작업이라면 반드시 커밋 단계까지 거쳐야 합니다.
Q. 저장소를 잘못 만들었어요, 삭제할 수 있나요?
가능합니다. 저장소의 Settings 메뉴 맨 아래 Danger Zone에서 Delete this repository를 선택하면 삭제할 수 있습니다. 단 삭제는 되돌릴 수 없으므로, 실수로 중요한 코드가 있는 저장소를 지우지 않도록 저장소 이름을 다시 한번 확인하는 절차가 요구됩니다.
Q. private 저장소도 다른 사람과 공유할 수 있나요?
가능합니다. 저장소의 Settings에서 Collaborators 메뉴를 통해 특정 사용자를 초대하면, 초대받은 사람만 비공개 저장소의 코드를 보고 작업에 참여할 수 있습니다. 전체 공개 없이 팀원끼리만 협업하고 싶을 때 유용한 방식입니다.