1. Git과 GitHub 소개
Git은 분산 버전 관리 시스템으로, 코드 변경 사항을 추적하고 협업을 원활하게 할 수 있도록 도와줍니다. GitHub은 Git을 기반으로 한 온라인 코드 저장소로, 협업을 지원하는 다양한 기능을 제공합니다. IntelliJ IDEA는 Git과 GitHub을 완벽하게 통합하여 사용할 수 있는 강력한 IDE입니다.
2. IntelliJ IDEA에서 GitHub 설정하기
2.1 Git 설치 및 IntelliJ 설정
- Git이 설치되어 있는지 확인합니다. (설치되지 않았다면 Git 공식 웹사이트에서 다운로드 후 설치)
- IntelliJ IDEA에서 File -> Settings -> Version Control -> Git으로 이동하여 Git 실행 파일 경로를 지정합니다.
- Test 버튼을 눌러 정상적으로 작동하는지 확인합니다.

2.2 GitHub 계정 연동
- File -> Settings -> Version Control -> GitHub으로 이동합니다.
- Add account를 클릭하여 GitHub 계정을 추가합니다.
- GitHub에 로그인하여 연동을 완료합니다.




3. 새 프로젝트를 GitHub에 업로드하는 방법
- IntelliJ에서 프로젝트를 생성합니다.
- VCS -> Enable Version Control Integration을 선택하고 Git을 선택합니다.
- VCS -> Import into Version Control -> Share Project on GitHub("GitHub에 프로젝트 공유")을 선택합니다.
- 저장소 이름을 입력하고 Share 버튼을 눌러 GitHub에 업로드합니다.
GitHub 저장소(repository)가 생성되고 프로젝트 파일이 업로드되었으며, 이제부터 GitHub를 통해 형상관리를 하면됨. - VCS -> Commit을 통해 변경 사항을 기록하고 Push 버튼을 눌러 GitHub에 반영합니다.





4. 기본적인 Git 명령어 및 IntelliJ에서 활용하기
- commit: 변경 사항을 로컬 저장소에 저장
- push: 로컬 변경 사항을 원격 저장소(GitHub)에 반영
- pull: 원격 저장소(GitHub)의 최신 변경 사항을 가져옴
- fetch: 원격 저장소 변경 사항을 확인하되 적용하지 않음
- merge: 분기된 브랜치를 하나로 합침


5. 팀 협업을 위한 GitHub 활용법
5.1 브랜치 전략
- master/main: 안정적인 버전이 있는 기본 브랜치
- feature: 새로운 기능 개발을 위한 브랜치
- hotfix: 긴급 수정 사항을 처리하는 브랜치
- develop: 개발용 브랜치
5.2 협업을 위한 GitHub Workflow
- Fork & Pull Request 방식
- 다른 사람의 저장소를 복사(Fork) 후 수정하고 PR(Pull Request)을 생성하여 변경 요청을 보냄
- Branch & Merge 방식
- 협업자가 같은 저장소에서 브랜치를 생성하고 작업 후 Merge Request 진행
5.3 충돌 해결 방법
- git pull로 최신 변경 사항을 가져옵니다.
- 충돌 발생 시 VCS -> Local Changes에서 충돌 파일을 확인합니다.
- 직접 코드 수정 후 Commit & Push를 진행합니다.
6. GitHub Actions로 CI/CD 자동화
GitHub Actions를 활용하면 코드가 변경될 때 자동으로 테스트, 빌드, 배포할 수 있습니다.
- .github/workflows/ci.yml 파일을 생성합니다.
- 기본적인 CI/CD 설정을 추가합니다.
name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Java
uses: actions/setup-java@v1
with:
java-version: '11'
- name: Build
run: mvn clean package
7. 실제 협업 프로젝트 진행 예제
7.1 팀 프로젝트 GitHub 설정
- 팀원이 동일한 GitHub 저장소를 클론(Clone)합니다.
- 각자 feature-개발명 브랜치를 생성하여 작업합니다.
- 작업 완료 후 Commit & Push를 합니다.
- Pull Request를 생성하여 코드 리뷰를 진행합니다.
- 검토 후 Merge를 수행하여 변경 사항을 반영합니다.
7.2 실전 프로젝트에서 GitHub 활용하기
- Issue Tracking: 버그 및 기능 추가 사항을 관리하기 위해 GitHub Issues를 활용
- Code Review: PR을 활용하여 코드 품질을 유지
- Project Board: GitHub Projects를 활용한 작업 흐름 관리
마무리
이 가이드를 통해 IntelliJ IDEA에서 GitHub을 활용한 형상관리와 협업 방법을 익힐 수 있습니다. Git과 GitHub을 활용하여 효과적인 팀 개발을 경험해 보세요!