개발 초보자를 위한 Git 시작하는 법
개발 초보자를 위해 Git과 GitHub의 차이점부터 핵심 명령어, 상황별 시작 가이드까지 알기 쉽게 정리합니다.
Git 시작하는 법
1. Git이란 무엇인가요?
Git(깃)은 파일의 변경 이력을 기록하고 관리하는 분산 버전 관리 시스템(VCS)입니다. 코드의 과거 상태를 보관하고, 문제가 생겼을 때 특정 시점으로 되돌리거나 여러 사람과 협업할 수 있도록 돕는 필수 도구입니다.
버전 관리의 필요성: “최종.txt”, “진짜최종.txt”, “진짜마지막최종.txt”와 같은 비효율적인 파일 관리 방식을 완벽하게 해결해 줍니다.시간 여행: 코드에 에러가 발생하더라도 언제든지 안전했던 과거의 특정 시점(Commit)으로 코드를 되돌릴 수 있습니다.
2. Git과 GitHub의 차이점
많은 입문자가 두 개념을 혼동하여 검색합니다.
| 구분 | Git(깃) | GitHub (깃허브) |
|---|---|---|
| 개념 | 로컬(내 컴퓨터)에서 작동하는 버전 관리 프로그램 | 인터넷망(클라우드)에 올려두는 원격 저장소 호스팅 서비스 |
| 저장 위치 | 사용자의 개인 컴퓨터 (Local) | 웹 서버 (Cloud) |
| 핵심 기능 | 파일 변화 추적, 가지치기(Branch), 병합(Merge) | 코드 공유, 협업(Pull Request), 다른 사람의 프로젝트 탐색 |
| 인터넷 연결 | 오프라인에서도 작동 가능 | 인터넷 연결이 필수적임 |
💡 한 줄 정리: Git은 내 컴퓨터에서 코드를 기록하는 도구이고, GitHub는 그 기록을 다른 사람들과 공유하는 공간입니다.
3. 개발자라면 몰라서는 안 될 핵심 용어 정리
| 용어 | 뜻 | 쉬운 비유 |
|---|---|---|
| 저장소(Repository) | 코드의 역사(History)가 저장된 폴더 | 앨범 또는 일기장 |
| 커밋(Commit) | 특정 시점의 스냅샷 (파일 묶음) | 앨범 속 사진 한 장 |
| 브랜치(Branch) | 독립적인 작업 공간 (가시) | 앨범 속 특정 주제 폴더 |
| 마스터(Master) / 메인(Main) | 주가지선 (대표 코드) | 앨범의 메인 표지 |
| 풀(Pull) | 원격(GitHub)의 변경 사항을 내 컴퓨터로 가져오기 | 앨범을 업데이트 받기 |
| 푸시(Push) | 내 컴퓨터의 변경 사항을 원격(GitHub)으로 올리기 | 앨범을 업로드 하기 |
| 클론(Clone) | 앨범 전체를 복사해 오기 | 앨범 복사하기 |
| 풀 리퀘스트(PR) | 다른 사람의 앨범에 내 사진을 추가해 달라고 요청하기 | 협업 |
4. 운영체제별 설치 가이드
Windows
- gitforwindows.org에서 git for windows 다운로드 후 설치
- 설치 후 바탕화면에서 우클릭하여 Git Bash 실행
- “Welcome to Git Bash!” 메시지가 보이면 성공
MacOS
- 터미널 실행
brew install git입력 후 엔터git -v입력 후 엔터git버전 출력 시 성공
Linux
- 터미널 실행
sudo apt-get update && sudo apt-get install git입력 후 엔터git -v입력 후 엔터git버전 출력 시 성공
5. git을 다루기 위해 알아야 할 shell command
Git은 터미널 환경에서 작동하므로, 쉘(Shell) 명령어에 익숙해져야 합니다. 다음은 가장 기본적이면서 필수적인 명령어 목록입니다.
| 명령어 | 기능 | 사용 예시 |
|---|---|---|
| ls | 현재 폴더의 파일 및 디렉터리 목록 보기 | ls -la (자세히 보기) |
| cd | 폴더(디렉터리) 이동 | cd Documents, cd .. (상위 폴더) |
| pwd | 현재 작업 중인 폴더 경로 확인 | pwd |
| mkdir | 새로운 폴더(디렉터리) 생성 | mkdir my-project |
| touch | 빈 파일 생성 또는 기존 파일 시간 갱신 | touch README.md |
| cat | 파일 내용 출력 | cat README.md |
| rm | 파일 또는 폴더 삭제 | rm file.txt, rm -rf folder |
💡 [팁] 윈도우의 Git Bash나 맥의 터미널에서 화살표 위/아래 키를 누르면 이전에 입력했던 명령어를 다시 볼 수 있어 유용합니다.
6. git의 기본 사용법
개발 초보자를 위한 Git 시작하는 법: 상황별 완벽 가이드 (init부터 push, clone까지)
개발을 시작할 때 반드시 넘어야 하는 첫 번째 장벽이 바로 Git(깃)과 GitHub(깃허브)입니다. 버전을 관리하고 협업을 하기 위해 필수적인 도구이지만, 처음 접하면 명령어들이 낯설고 헷갈리기 마련입니다.
이 글에서는 Git을 시작하는 가장 대표적인 두 가지 상황인 ① 로컬에 이미 코드가 있을 때, 그리고 ② GitHub에서 저장소를 먼저 만들고 가져올 때의 핵심 프로세스를 아주 쉽게 정리해 드립니다.
마지막에는 많은 초보자가 혼동하는 로컬 저장소와 원격 저장소의 명확한 차이점까지 표로 한눈에 비교해 드릴 테니, 이 글 하나로 Git 기초를 완벽하게 마스터해 보세요!
1. [상황 ①] 로컬에 이미 코드가 존재할 때 (git init부터 push까지)
내 컴퓨터(로컬)에서 이미 열심히 개발 중인 프로젝트 폴더가 있고, 이 폴더를 뒤늦게 Git으로 관리하고 GitHub에 올리고 싶을 때 사용하는 방법입니다.
다음 5단계 과정을 차례대로 따라 하시면 됩니다.
Step 1. 로컬 폴더에서 Git 시작하기 (git init)
터미널(또는 Git Bash)을 열고 프로젝트 폴더 경로로 이동한 뒤, 아래 명령어를 입력합니다.
git init 역할: 현재 폴더를 Git이 추적하는 ‘로컬 저장소(Local Repository)‘로 초기화합니다. 폴더 내부에 숨겨진 .git 폴더가 생성됩니다.
Step 2. 변경 파일 준비 영역에 추가하기 (git add)
버전으로 기록할 파일들을 장바구니(Staging Area)에 담는 과정입니다.
git add . 역할: .은 폴더 내의 모든 변경된 파일을 담겠다는 의미입니다. 특정 파일만 올리고 싶다면 git add 파일명.확장자를 입력합니다.
Step 3. 첫 번째 버전 기록하기 (git commit)
장바구니에 담은 파일들을 하나의 완성된 버전으로 사진 찍듯 기록(제출)하는 단계입니다.
git commit -m "First commit (첫 커밋 메시지)" 역할: -m 옵션 뒤에 이 버전이 어떤 변경 사항을 담고 있는지 설명하는 메시지를 적습니다. 나중에 과거 버전을 찾아갈 때 이 메시지가 이정표 역할을 합니다.
Step 4. 원격 저장소(GitHub) 주소 연결하기 (git remote)
내가 만든 로컬 저장소와 인터넷 세상에 있는 GitHub 저장소(원격 저장소)를 연결해 주는 과정입니다. 먼저 GitHub에서 빈 저장소(Repository)를 하나 생성한 뒤, 해당 저장소의 URL 주소를 복사해 옵니다.
git remote add origin https://github.com/사용자이름/저장소이름.git 역할: 복사한 URL 주소를 origin이라는 이름(별명)으로 등록하겠다는 뜻입니다.
Step 5. 원격 저장소로 코드 전송하기 (git push)
드디어 로컬에서 만든 버전을 GitHub로 쏘아 올리는 마지막 단계입니다.
git push -u origin main 역할: 로컬의 main 브랜치 내용을 origin(GitHub 원격 저장소)으로 업로드합니다. -u 옵션을 붙여두면 다음부터는 단순히 git push만 입력해도 자동으로 연결됩니다.
2. [상황 ②] GitHub에서 저장소 먼저 만들고 clone 하기
처음부터 완전히 새롭게 프로젝트를 시작할 때 가장 권장되는 깔끔한 방법입니다. GitHub 웹사이트에서 먼저 저장소를 세팅하고 내 컴퓨터로 가져오는 방식입니다.
Step 1. GitHub에서 저장소(Repository) 만들기
- GitHub 로그인 후 우측 상단의
+버튼을 누르고 New repository를 클릭합니다. - 저장소 이름(Repository name)을 적고 필요에 따라
.gitignore,README.md파일을 체크하여 생성합니다. - 생성이 완료되면 초록색 [Code] 버튼을 눌러 나오는 HTTPS URL 주소를 복사합니다.
Step 2. 내 컴퓨터로 통째로 내려받기 (git clone)
코드를 담을 로컬 폴더(부모 폴더)로 터미널 경로를 이동한 뒤 아래 명령어를 입력합니다.
git clone https://github.com/사용자이름/저장소이름.git 역할: GitHub에 있는 원격 저장소의 모든 내용과 설정(.git 폴더 포함)을 내 컴퓨터로 통째로 복제(Clone)해 옵니다. 이 방법은 자동으로 원격 저장소 주소(origin)가 등록되기 때문에 편리합니다.
3. 핵심 개념 정리: 로컬 저장소 vs 원격 저장소 차이점
Git을 다룰 때 가장 중요한 개념은 “내 컴퓨터에 있는 코드(Local)“와 “인터넷 세상에 있는 코드(Remote)“가 엄격하게 분리되어 작동한다는 점을 이해하는 것입니다.
두 저장소의 구체적인 차이점은 아래 표와 같습니다.
| 구분 | 로컬 저장소 (Local Repository) | 원격 저장소 (Remote Repository) |
|---|---|---|
| 물리적 위치 | 내 PC (내 컴퓨터 하드디스크) | GitHub, GitLab 등 인터넷상의 서버 |
| 접근성 | 네트워크가 연결되지 않은 오프라인에서도 동작 | 인터넷 연결이 필수적임 |
| 핵심 명령어 | git init, git add, git commit | git clone, git push, git pull |
| 주요 역할 | 개인의 작업 공간 및 개발 버전의 로컬 기록 | 협업 공간, 코드 백업, 팀원 간의 코드 공유 |
| 관계 | 언제든지 원격 저장소와 연결하거나 끊을 수 있음 | 여러 명의 로컬 저장소가 바라보는 중앙 집중식 허브 역할 |
💡 한 줄 요약 “로컬 저장소”에서 안전하게 코드를 짜고 컴퓨터 내에 버전을 기록(commit)한 뒤, 완성된 버전을 인터넷 세상인 “원격 저장소”에 올려서 공유(push)하는 것이 Git 워크플로우의 본질입니다.
이제 여러분의 프로젝트 상황에 맞춰 알맞은 방법으로 Git을 시작해 보세요! 궁금한 점이 있거나 실행 중 에러가 발생했다면 아래 댓글로 언제든지 남겨주세요!