GitHub란?
GitHub는 Git 기반의 원격 저장소(Repository) 호스팅 서비스이다. 개발자가 작성한 소스 코드를 온라인에 저장하고 관리할 수 있으며, 여러 사람이 함께 프로젝트를 진행할 수 있도록 협업 기능을 제공한다.
Git은 버전 관리 시스템(VCS, Version Control System)이고, GitHub는 Git으로 관리되는 프로젝트를 인터넷 상에서 저장하고 공유할 수 있게 해주는 플랫폼이라고 볼 수 있다.
예를 들어 프로젝트를 개발하다가 오류가 발생했을 경우, 이전 버전으로 되돌아가거나 특정 시점의 코드를 확인할 수 있다. 또한 팀원들과 같은 프로젝트를 공유하면서 변경 내역을 추적할 수 있다.
GitHub를 사용하는 이유
1. 버전 관리
코드가 변경될 때마다 변경 이력을 저장할 수 있다.
- 언제 수정했는지
- 누가 수정했는지
- 어떤 내용이 수정되었는지
를 쉽게 확인할 수 있다.
2. 협업 기능
여러 개발자가 하나의 프로젝트를 동시에 개발할 수 있다.
- 코드 리뷰
- 이슈 관리
- Pull Request
- 브랜치 관리
등 다양한 협업 기능을 제공한다.
3. 백업 기능
소스 코드가 로컬 PC에만 존재하면 컴퓨터 고장이나 파일 삭제 시 복구가 어렵다.
GitHub에 저장해두면 언제든지 원격 저장소에서 다시 받아올 수 있다.
4. 포트폴리오 관리
개발자가 작성한 프로젝트를 공개 저장소(Public Repository)로 관리하면 취업이나 이직 시 포트폴리오로 활용할 수 있다.
Git과 GitHub의 차이
| Git | GitHub |
| 로컬 환경에서 동작 | 클라우드 환경에서 동작 |
| 설치 필요 | 웹사이트에서 사용 가능 |
| 코드 이력 관리 | 코드 공유 및 협업 지원 |
| 버전 관리 도구 | Git 저장소를 호스팅하는 서비스 |
주요기능
Repository
프로젝트 파일과 버전 정보를 저장하는 공간이다.
Commit
파일 변경 내용을 하나의 버전으로 저장하는 작업이다.
Branch
독립적인 작업공간이다. 협업시 개인 혹은 기능별 브랜치에서 작업을 하고 Main에 병합(Merge) 할 수 있다.
Pull Request(PR)
작업한 내용을 메인 브랜치에 반영해달라고 요청하는 기능이다.
PR템플릿 등으로 코드리뷰를 진행할 때 많이 사용한다.
아래부터는 여러 명령어들을 정리해 보았다.
자주 사용하는 명령어
| 명령어 | 설명 |
| git status | 현재 파일 상태 확인 |
| git add . | 변경된 모든 파일 스테이징 |
| git add 파일명 | 특정 파일만 스테이징 |
| git commit -m "메시지" | 커밋 생성 |
| git log | 커밋 기록 확인 |
| git log --oneline | 커밋 기록 간략히 확인 |
| git diff | 변경 내용 확인 |
| git restore 파일명 | 수정 내용 취소 |
| git rm 파일명 | 파일 삭제 후 Git에도 반영 |
| git mv 기존파일 새파일 | 파일 이름 변경 |
| git init | 현재 폴더를 Git 저장소로 초기화 |
원격 저장소 관련
| 명령어 | 설명 |
| git remote -v | 연결된 원격 저장소 확인 |
| git push origin main | 원격 저장소로 업로드 |
| git push -u origin main | 최초 업로드 및 추적 브랜치 설정 |
| git pull origin main | 원격 저장소 최신 내용 가져오기 |
| git fetch | 최신 정보만 가져오기(병합 X) |
| git clone 저장소주소 | 저장소 복제 |
| git remote add origin 저장소주소 | 원격 저장소 연결 |
브랜치 관련
| 명령어 | 설명 |
| git branch 브랜치명 | 브랜치 생성 |
| git switch 브랜치명 | 브랜치 이동 |
| git switch -c 브랜치명 | 브랜치 생성 후 이동 |
| git checkout 브랜치명 | 브랜치 이동 (구버전 방식) |
| git checkout -b 브랜치명 | 브랜치 생성 후 이동 (구버전 방식) |
| git branch -d 브랜치명 | 브랜치 삭제 |
| git merge 브랜치명 | 현재 브랜치에 병합 |
| git branch | 브랜치 목록 조회 |
Git 작업 흐름
코드작성 → git status(생략가능) → git add . → git commit -m "메시지" → git push(main이 아닌 브랜치) → Pull request생성 → Merge
이번 미니 프로젝트를 진행하면서 Git과 GitHub의 필요성을 직접 체감할 수 있었다. 이전에는 단순히 코드를 저장하거나 제출하기 위한 도구 정도로 생각했는데, 실제로 여러 기능을 개발하고 수정하는 과정을 거치면서 버전 관리의 중요성을 알게 되었다.
특히 기능을 추가하거나 코드를 수정하다가 예상치 못한 문제가 발생했을 때, 이전 작업 내역을 확인할 수 있다는 점이 매우 편리했다. 또한 브랜치를 생성하여 기능별로 작업하고, Pull Request를 통해 변경 사항을 관리하는 과정도 경험하면서 왜 많은 개발팀이 Git을 사용하는지 이해할 수 있었다.
아직 모든 명령어나 협업 기능을 완벽하게 이해한 것은 아니지만, 프로젝트를 진행하면서 Git이 단순한 코드 저장소가 아니라 개발 과정 전체를 관리하는 중요한 도구라는 것을 느꼈다.
앞으로 개인 프로젝트나 팀 프로젝트를 진행하면서 쭉 사용할 Git을 더욱 적극적으로 활용하고 익숙해질 필요가 있다고 생각한다.
'TIL' 카테고리의 다른 글
| TIL (9) - Spring Data JPA (0) | 2026.06.21 |
|---|---|
| TIL (8) - 스프링 부트(Spring Boot) (0) | 2026.06.12 |
| TIL (6) - SQLD (0) | 2026.05.29 |
| TIL (5) - Mini Project / Java Swing 영화 예약 시스템 개발 후기 / team CINE (0) | 2026.05.22 |
| TIL (4) - Lamda (0) | 2026.05.17 |