1. Git과 GitHub의 차이
Git
- 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템
GitHub
- Git 저장소 호스팅을 지원하는 가장 인기 있는 오픈 소스 웹 서비스
한 줄로 정리하면, Git은 도구이고 GitHub는 그 도구를 활용한 웹 플랫폼입니다.
2. 왜 중요한가?

Git의 역할
- 코드의 버전 관리를 용이하게 함
- 여러 사람이 동시에 하나의 프로젝트를 협업할 수 있도록 도움
Git이 필요한 이유
- 이전 작업 기록 확인 가능
- 특정 시점으로 되돌아가기 가능
- 협업 시 코드 충돌 관리 가능
GitHub의 역할
- 코드 호스팅, 버전 관리 및 협업을 위한 통합 플랫폼 제공
GitHub가 필요한 이유
- 전 세계 어디서나 프로젝트 공유 가능
- 여러 개발자가 함께 협업 가능
- 오픈소스 프로젝트 참여 가능
3. 기존 물리적인 백업 및 공유 방식
Git이 등장하기 전에는 다음과 같은 방식으로 코드를 백업하고 공유했습니다.
기존 방식
- 컴퓨터에서 직접 파일 이동
- USB, 외장하드 사용
- 메일 및 클라우드 사용
장점
- 코드 손실 시 복구 가능성이 있음
단점
- 코드가 변경될 때마다 저장해야 해서 관리가 어려움
- 컴퓨터가 고장나거나 외장하드를 분실하면 백업 파일이 모두 사라질 수 있음
4. 버전 관리 시스템 (VCS)
어떤 프로그램이 몇 번 수정되어 있는지를 관리하는 프로그램
버전 관리 시스템은 크게 두 가지 방식으로 나뉩니다.
- 중앙 집중식 버전 관리 시스템 (CVCS)
- 분산 버전 관리 시스템 (DVCS)
5. 중앙 집중식 버전 관리 시스템 (CVCS)
서버에서만 프로그램의 버전과 변경사항을 관리하는 방식
예시
- 구글 슬라이드
특징
- 언제 어떤 사람이 문서를 변경했는지 확인 가능
장점
- 다른 사람들과 동시에 자료 보기 가능
- 로컬 컴퓨터 저장공간 절약 가능
- 작업 순서를 알 수 있음 → 이전 기록으로 돌아가기 쉬움
- 파일 유실이 덜 생김
단점
- 인터넷 연결이 안 되면 작업 불가능
- 서버가 날아가면 복구 어려움
- 동시에 같은 내용 작업하기 어려움
6. 분산 버전 관리 시스템 (DVCS)
프로젝트의 전체 히스토리와 버전 관리 정보를 각 사용자의 로컬 시스템에 복제하여, 네트워크에 의존하지 않고도 버전 관리를 수행할 수 있도록 하는 시스템
Git이 바로 이 방식에 해당합니다.
장점
- 작업 순서를 알 수 있음 → 이전 기록으로 돌아가기 쉬움
- 인터넷 연결이 잠시 안 되어도 작업 가능
- 서버가 날아가도 복구 가능성 높음
- 동시에 같은 내용 작업 가능
단점
- 관리가 어려움
7. Git 동작 방식
Git의 작업 흐름은 크게 6단계로 나뉩니다.
1단계 : Git 저장소 생성
git init
- 기존 디렉토리를 Git 저장소로 초기화
- Working Directory(.git 폴더) 생성
2단계 : 파일 스테이징
git add a.txt
- 흐름 : Untracked Files → Stage
3단계 : 파일 수정
- 파일 수정 시 Stage 상태에서 Working Directory 내부의 Tracked Files 중 Unstaged Files 상태로 이동
4단계 : 다시 스테이징
git add
- 흐름 : Unstaged Files → Stage
5단계 : 커밋
git commit
- 흐름 : Stage → History
6단계 : 서버 업로드
- 변경사항을 원격 서버에 업로드 (git push)
전체 흐름을 한눈에 정리하면 다음과 같습니다.
Working Directory → Stage → History → Remote Repository
(add) (commit) (push)
8. 자주 사용하는 Git 명령어
명령어 역할
| git init | Working Directory 생성 (저장소 초기화) |
|---|---|
| git remote add origin "저장소 주소" | 로컬 저장소에 원격 저장소 연결 |
| git status | 현재 작업 중인 저장소 상태 확인 |
| git add 파일명 | 파일을 Stage 상태로 변경 |
| git commit -m "메모" | 파일의 변경 내용 확정 |
| git push <원격저장소명> <브랜치명> | 로컬 저장소 변경 내용을 원격 저장소에 업로드 |
| git clone "원격 저장소 주소" | 원격 저장소 레포지토리 복제 |
| git pull | 원격 저장소 최신 내용을 로컬 저장소로 가져옴 |
각 명령어의 상세한 사용 예시도 정리해두면 다음과 같습니다.
저장소 생성
git init
원격 저장소 연결
git remote add origin "저장소 주소"
상태 확인
git status
스테이징
git add 파일명
커밋
git commit -m "메모"
원격 저장소 업로드
git push <원격저장소명> <브랜치명>
저장소 복제
git clone "원격 저장소 주소"
최신 내용 가져오기
git pull
마치며
Git과 GitHub는 협업 개발의 필수 도구입니다. 자주 쓰는 명령어는 다음 5~6개 입니다.
- git init → 저장소 초기화
- git add → 스테이징
- git commit → 변경 확정
- git push → 원격 업로드
- git pull → 원격 최신 내용 가져오기
- git clone → 원격 저장소 복제
