블로그

뉴비를 위한 Github 사용법 총정리

뉴비를 위한 Github 사용법 총정리

How to use GitHub

아이디어가 있나요?

Hitek 언제나 당신과 동행할 준비가 되어있습니다.​

개발판에 첫발을 들인 당신. 코딩은 어찌어찌 하는데, ‘깃허브’라는 단어만 나오면 갑자기 어깨가 움츠러드는가? 걱정 마. 당신만 그런 게 아니다. 이 지긋지긋한 버전 관리 시스템은 마치 위스키 바의 첫 입문처럼—처음엔 텁텁하고 어렵게만 느껴지지만, 그 규칙만 알면 인생에서 가장 강력한 무기가 되어준다. 오늘은 그 어두운 밤의 문을 활짝 열어젖힐, 뉴비를 위한 Github 사용법이다.

이 글을 다 읽고 나면, 당신은 더 이상 터미널 앞에서 벌벌 떠는 초보가 아니다. ‘잘 모르니까’ 남의 코드만 베끼던 시절은 끝났다. 지금부터 우리는 같은 무대 위에서, 가장 쿨한 방식으로 협업의 세계에 입문한다.

1. Git과 Github: 그냥 같은 거 아냐?

대부분의 뉴비가 가장 먼저 하는 질문이다. “깃(Git)이랑 깃허브(Github)는 뭐가 달라요?” 이 질문에 “그냥 같은 거예요”라고 답하는 사람이 있다면, 그 사람 옆에서 맥주를 마시지 마라. 둘은 전혀 다른 존재다.

Git은 2005년, 리눅스의 아버지 리누스 토르발즈가 단 2주 만에 뚝딱 만들어낸 분산 버전 관리 시스템이다. 이 핀란드 출신의 천재는 자기가 쓰던 도구(BitKeeper)가 갑자기 유료로 돌아서자, 화가 나서 직접 만들어버렸다. 마치 “네가 안 해? 내가 할게”라고 말하며 2주 만에 지옥에서 온 도구를 꺼내든 셈이다. Git은 우리 컴퓨터(로컬) 안에서 코드의 모든 순간을 기록한다. 마치 타임머신처럼, 과거의 순간으로 자유자재로 이동할 수 있게 해주는 강력한 엔진이다.

Github는 이 Git 엔진을 얹어서 운행하는 클라우드 기반의 원격 저장소다. 쉽게 말해, 내 컴퓨터에만 있는 소중한 코드들을 인터넷상의 서버에 백업해두고, 전 세계 개발자들과 공유하고 협업할 수 있게 만든 공간이다.

비유하자면, Git은 ‘시간을 조종하는 장치’ 이고, Github는 그 장치로 만든 멋진 작품을 전 세계에 전시하는 ‘갤러리’ 인 셈이다.

2. 헷갈리는 용어들, 싹 정리해드립니다

개발자들은 은어를 좋아한다. 마치 패션 피플들이 ‘플리츠’니 ‘실루엣’이니 하며 수다 떨 듯, 깃허브에도 알아들을 수 없는 단어가 넘쳐난다. 이 기본기를 무시하면 나중에 Pull Request 하나 제대로 못 올리고 한 시간 동안 헤맬 수 있다. 지금 바로 정리하자.

용어 영문 핵심 정리 (뉴비의 언어)
저장소 Repository 프로젝트 파일이 보관되는 창고다. 보통 하나의 프로젝트 단위로 생성한다.
로컬 / 원격 Local / Remote 내 컴퓨터깃허브 서버의 차이. 내 컴퓨터에서 작업하고, 결과물을 서버로 밀어 넣는 구조다.
커밋 Commit 코드의 변경 이력을 하나의 스냅샷으로 저장하는 행위. “이때까지 한 작업을 ‘회원가입 기능 추가’라는 이름으로 저장한다!”고 생각하면 된다.
푸시 / 풀 Push / Pull 밀어 넣기(Push) : 내 컴퓨터의 커밋을 깃허브 서버에 업로드. 당겨 오기(Pull) : 반대로 서버의 최신 코드를 내 컴퓨터로 가져옴.
브랜치 Branch 분기점, 혹은 평행 우주. 메인 코드에는 영향을 주지 않고, 나만의 공간에서 자유롭게 실험할 수 있는 공간이다.

3. 가장 간결한 워크플로우: 이 순서만 기억해라

깃허브의 전체 프로세스는 생각보다 단순하다. 마치 요리 레시피처럼, 이 순서만 외우면 절대 망하지 않는다. 나는 이걸 ‘ADD-COMMIT-PUSH 삼부작’ 이라고 부른다.

  1. ADD (스테이징) : 요리 재료를 손질해 대기실(Staging Area) 에 올린다. git add . (모든 변경사항) 또는 git add [파일명]으로 사용한다.
  2. COMMIT (확정) : 대기실에 있는 재료들을 하나의 요리 세트로 묶어 이름을 붙인다. git commit -m "로그인 기능 완료".
  3. PUSH (업로드) : 완성된 요리 세트를 진열장(Github)에 전시한다. git push origin main.

이게 끝이다. 물론 중간에 git status로 현재 상태를 수시로 확인하는 습관은 필수다.

4. 첫 번째 저장소, 너랑 나랑 연결하기

자, 이제 실제로 움직여보자. 이론은 충분하다. 손을 움직여라.

1) 로컬에서 시작하기

우리가 작업할 폴더를 하나 만들자. 터미널(맥)이나 Git Bash(윈도우)를 열어 다음 명령어를 친다.

mkdir my-first-project
cd my-first-project
git init

git init은 이 폴더를 Git이 관리하겠다고 선언하는 순간이다. 마치 “여기는 내 작업실이다”라고 벽에 낙서하는 것과 같다.

2) 깃허브에 원격 저장소 생성하기

  1. Github.com에 로그인한다.
  2. 오른쪽 상단의 [+] 버튼을 누르고 New repository를 클릭한다.
  3. 저장소 이름을 위에서 만든 폴더명과 동일하게 my-first-project로 지정한다. (설명은 선택사항)
  4. PublicPrivate 중 선택한다. (일단 공부용이니 Public도 무방)
  5. Create repository 버튼 클릭.

3) 로컬과 원격을 연결하는 마법

생성된 저장소 페이지에 보면 …or push an existing repository from the command line이라는 섹션이 보일 것이다. 그 아래 있는 명령어를 그대로 복사해 우리의 터미널에 붙여 넣는다.

git remote add origin https://github.com/아이디/my-first-project.git
git branch -M main
git push -u origin main

git remote add origin은 “지금부터 내 컴퓨터의 이 폴더는 origin이라는 별명으로 깃허브 서버와 연결된다”는 선언이다. 이제 당신의 코드는 전 세계 어디서든 접근 가능한 클라우드로 날아갔다.

5. 브랜치(Branch): 평행 우주에서 놀아보자

처음에는 main 브랜치 하나만으로도 충분하다. 하지만 진정한 협업은 브랜치에서 시작된다. 당신이 앱을 만드는데, 갑자기 새로운 다크 모드 기능을 실험해보고 싶다고 가정해보자. 메인 앱이 망가질까봐 두렵다면, 브랜치를 생성하면 된다.

# 새 브랜치 생성 및 이동
git checkout -b feature/dark-mode

# 여기서 마음껏 코드 수정 후 커밋
git add .
git commit -m "다크모드 실험 중"

# 작업이 완료되면 다시 메인 브랜치로 이동
git checkout main

# 실험한 내용을 메인에 병합
git merge feature/dark-mode

브랜치 전략은 초보자에겐 다소 복잡해 보일 수 있다. 하지만 이것만 기억하자: 당신이 지금 작업하는 내용이 메인에 영향을 주지 않는다는 사실, 그 자체가 브랜치가 주는 가장 큰 선물이다.

에필로그: 버튼이 아니라 원리를 이해하라

오늘 배운 내용은 단순히 명령어를 외우는 것이 아니다. add, commit, push, branch라는 네 가지 축이 어떻게 맞물려 돌아가는지, 그 흐름을 이해하는 것이 핵심이다. 구글 검색만으로는 알려주지 않는, 이 근육 기억 같은 흐름을 체화하는 순간, 당신은 더 이상 깃허브 앞에서 주눅 들지 않게 될 것이다.

이제 당신의 코드를 깃허브에 올려라. 두려워 말고. 버튼을 누르는 게 아니라, 명령어로 직접 컨트롤하는 맛에 점점 빠져들게 될 테니. 혹시 실수했다면? 리누스가 만든 그 타임머신, Git이 아름답게 되돌려줄 테니까.

Picture of Khoi Tran

Khoi Tran

Khoi Tran은 하이텍 소프트웨어의 소유자입니다. 사회의 문제를 해결하기 위해 기술적인 솔루션을 기여하는 것에 열정적입니다. 소프트웨어 엔지니어로 6년간 근무한 기술 지식과 (2018년부터 기술 회사를 운영하며) 비즈니스 감각을 갖추고 있어, 나는 다행히도 이 디지털 세계에서 더 많은 장점을 가진 현대적인 기업가 세대의 일부로 위치하고 있습니다.
기타 기사
app development outsourcing

합리적인 비용으로 앱 개발하기: 돈 냄새를 맡는 자들의 ‘스마트’한 전략

우리는 살아있는 한 계속해서 무언가를 지불한다. 특히 디지털 시대를 항해하는 선장이라면 그 대가가 더 크다. 앱 개발. 이 세 글자는 수많은 창업자들에게 ‘통 크게 베팅’하라는 압박으로 다가온다. 전통적인 개발 방식은 마치 맞춤 양복을 주문하는 것과 같다. 한 땀 한 땀 정성을 들이지만, 그만큼 바라보는 시간표는 길어지고 청구서는 하늘을 찌른다. 171,000달러(약 2억 3천만 원) . 이건

세부정보 →
web development vs app development

앱개발 vs 웹개발 차이를 쉽게 설명한 글

디지털 시대, 당신의 비즈니스나 아이디어를 현실로 옮기는 방법은 사실상 두 가지로 압축됩니다. 세상에 없던 앱개발로 스마트폰 주인공이 되는 길, 또는 웹개발로 더 넓은 세상을 향해 문을 여는 길. 마치 꼬투리 안의 완두콩처럼 보이지만, 이 둘의 세계는 철학부터 구조까지 180도 다릅니다. 어느 쪽이 옳고 그름의 문제가 아니라, 당신의 손에 쥔 무기가 검인지 창인지부터 파악해야 한다는 얘기입니다.

세부정보 →
Most Important Biomarkers for Chronic Disease Monitoring

만성질환 모니터링에 가장 중요한 5가지 생체지표

우리나라 성인의 약 30%가 고혈압을 앓고 있으며, 당뇨병 환자도 지속적으로 증가하고 있습니다. 하지만 적절한 모니터링으로 이들 질환의 합병증을 크게 줄일 수 있습니다. 건강 관리에 있어 가장 강력한 무기는 정보입니다. 특히 당뇨병이나 고혈압 같은 만성질환은 증상 없이 조용히 진행되다가 어느 날 갑자기 심각한 합병증으로 나타날 수 있습니다. 일상적인 건강 검진에서 접하는 숫자들은 단순한 데이터가 아니라, 신체가

세부정보 →
What is Node js

node.js가 정확히 무슨 일을 하는거죠?

우리가 매일 사용하는 웹사이트, 넷플릭스, 쿠팡, 심지어 이 글을 보고 있는 지금 이 순간에도. 수많은 데이터가 오고 가는 그 중심에는 자바스크립트가 있다. 그런데 문제는, 자바스크립트라는 녀석, 원래는 웹 브라우저 안에서만 살아가는 언어였다는 사실이다. 그런데 갑자기 어느 날부터, 이 녀석이 브라우저 밖으로 뛰쳐나와 컴퓨터를 통째로 조종하기 시작했다. 그 중심에 있는 것이 바로 Node.js다. 겉보기엔 그냥 설치

세부정보 →
software development productivity

개발자 생산성 지표 효과적으로 활용하기

속도가 전부인 줄 알았다. 더 빠른 배포, 더 많은 커밋, 더 짧은 리드 타임. 하지만 어느 순간, 팀은 지쳐가고 있었다. 코드는 계속 쌓이는데, 무언가 근본적으로 잘못되고 있다는 느낌, 받아본 적 있는가? 전쟁은 속도가 아니다. 지속 가능한 전략이다. 단순히 ‘얼마나 빨리 달리는가’가 아니라 ‘그 속도를 얼마나 오래 유지할 수 있는가’가 진짜 생산성의 정의다. 오늘날 개발자 생산성

세부정보 →
software development quotation

견적서 작성법: 당신의 가격, 이제는 함부로 보여주지 마세요

프로젝트 수주, 그 시작은 종이 한 장, 아니면 요즘은 PDF 파일 하나입니다. 하지만 그 한 장이 얼마나 날카롭냐에 따라, 당신의 노동력은 ‘싸구려 노가다’ 가 될 수도, ‘돈 주고도 못 구하는 명품 퍼포먼스’ 가 될 수도 있습니다. 혹시 아직도 견적서를 ‘이거 얼마에요?’ 하는 단순한 답변 정도로 생각하고 계신가요? 지금부터 그 생각, 확 바꿔보시죠. 견적서는 단순한 가격표가

세부정보 →
Scroll to Top