GitHub 기초
GitHub는 Git을 사용하는 프로젝트를 위한 웹 기반의 호스팅 서비스입니다. 전 세계 개발자들이 소스 코드를 공유하고 협업하는 데 가장 널리 사용되는 플랫폼입니다.
개요
Git은 분산 버전 관리 시스템 자체를 의미하지만, GitHub는 Git 저장소를 관리할 수 있는 클라우드 기반의 서비스입니다. GitHub를 통해 개발자들은 원격 저장소에 코드를 저장하고, 여러 개발자와 함께 코드를 수정하며, 프로젝트의 변경 이력을 효율적으로 추적하고 관리할 수 있습니다. 소스 코드 공개 여부에 따라 공개(Public) 및 비공개(Private) 저장소를 지원합니다.
참고
GitHub는 Git의 모든 기능을 사용하지만, Git 없이 GitHub만으로는 버전 관리를 할 수 없습니다. 로컬에서 Git으로 커밋한 내용을 GitHub에 올리는(push) 방식으로 사용합니다.
주요 기능
GitHub는 단순한 코드 저장소를 넘어 협업을 위한 다양한 기능을 제공합니다.
- 저장소(Repository): 프로젝트의 모든 파일과 변경 이력을 저장하는 공간입니다.
- 풀 리퀘스트(Pull Request): 자신의 작업 브랜치 내용을 메인 브랜치에 병합(Merge)해 달라고 요청하는 기능입니다. 코드 리뷰와 토론을 위해 사용됩니다.
- 이슈(Issues): 버그, 기능 개선, 할 일 등을 기록하고 관리하는 트래킹 시스템입니다.
- GitHub Actions: 빌드, 테스트, 배포 등 개발 워크플로우를 자동화하는 CI/CD(지속적 통합/배포) 기능입니다.
핵심 용어
GitHub에서 자주 사용되는 핵심 용어들입니다.
용어 | 설명 |
---|---|
Branch |
독립적인 작업 공간을 만드는 기능입니다. 새로운 기능 개발이나 버그 수정을 위해 사용합니다. |
Fork |
다른 사람의 저장소를 자신의 계정으로 통째로 복사하는 기능입니다. 원본 프로젝트에 기여할 때 주로 사용합니다. |
Clone |
원격 저장소의 내용을 로컬 컴퓨터로 복사하는 기능입니다. |
Merge |
다른 브랜치의 내용을 현재 브랜치에 통합하는 기능입니다. |
기본 워크플로우
GitHub를 이용한 일반적인 협업 작업 순서는 다음과 같습니다.
CLI
# 1. 원격 저장소를 로컬로 복제 git clone <저장소 주소> # 2. 새로운 기능 개발을 위해 브랜치 생성 및 이동 git checkout -b feature/new-feature # 3. 코드 수정 후 커밋 git add . git commit -m "feat: 새로운 기능 추가" # 4. 로컬 변경 내용을 원격 저장소에 푸시 git push origin feature/new-feature # 5. GitHub에서 풀 리퀘스트 생성 (웹 인터페이스)
주의사항 및 팁
README.md
파일을 통해 프로젝트를 소개하고 사용 방법을 명시하는 것이 좋습니다.- GitHub Issues를 활용하여 작업 진척도를 관리하면 프로젝트를 체계적으로 진행할 수 있습니다.
git pull --rebase
를 사용하면 불필요한 병합 커밋(Merge Commit)을 줄여 커밋 이력을 깔끔하게 유지할 수 있습니다.
주의
GitHub에 중요한 개인 정보(비밀번호, API 키 등)가 포함된 파일을 절대 올리지 마세요. 실수로 올렸을 경우, 해당 파일 이력을 완전히 삭제해야 합니다.