| Git | GitHub |
|---|---|
| 로컬(내 컴퓨터)에서 버전 관리를 하는 도구 | 온라인에서 Git 리포지토리를 호스팅하는 플랫폼 |
| 코드 변경 사항을 추적하고 기록함 | 다른 사람과 코드 공유 및 협업 가능 |
| 인터넷이 없어도 사용 가능 | 인터넷이 필요함 |
git commit을 사용하여 변경 사항 저장 | git push를 사용하여 변경 사항 업로드 |
┌────────────────────────────────┐
│ 내 컴퓨터 (Local) │
└────────────────────────────────┘
│
┌────────────────────────────────┐
│ Git (버전 관리 도구) │
└────────────────────────────────┘
│
┌────────────────────────────────┐
│ GitHub (온라인 저장소) │
└────────────────────────────────┘
git init # Git 초기화
git add . # 모든 변경 사항 추가
git commit -m "수정사항" # 변경 사항 커밋
### 2) **GitHub에 코드 업로드**
```bash
git remote add origin <리포지토리 URL> # 원격 저장소 연결
git push -u origin master # 변경 사항 업로드
git pull origin master # 최신 코드 가져오기
GitHub 협업 흐름: Fork, Branch, Pull Request
(1) 원본 리포지토리 (Original Repository)
├──> (2) 내 계정으로 Fork (Forked Repository)
│ → 다른 사람의 프로젝트를 내 계정으로 복사
│
├──> (3) 새로운 브랜치 생성 (New Branch)
│ → 새로운 기능 추가 또는 버그 수정용 작업 공간 만들기
│
├──> (4) 코드 수정 및 작업 (Modify & Work)
│ → 직접 코드를 수정하고 기능 개발 진행
│
├──> (5) Pull Request 요청 (PR)
│ → "내가 수정한 내용을 원본 리포지토리에 반영해 주세요!" 요청 보내기
│
└──> (6) 리뷰 후 병합 (Merge)
│ → PR이 승인되면 원본 리포지토리에 반영 (병합 완료!)
| 명령어 | 설명 |
|---|---|
git init | 현재 폴더를 Git 리포지토리로 초기화 |
git clone <URL> | GitHub에 있는 리포지토리를 내 컴퓨터로 복사 |
git status | 변경된 파일 상태 확인 |
git add . | 모든 변경 사항을 스테이징 영역에 추가 |
git commit -m "메시지" | 변경 사항을 기록(스냅샷 저장) |
git push origin master | 로컬 변경 사항을 GitHub에 업로드 |
git pull origin master | GitHub의 최신 코드 내려받기 |
v1, v2처럼 수동으로 관리할 필요 없음git commit -m "버그 수정"
git log --oneline # 변경 이력 확인git checkout <커밋 ID> # 특정 버전으로 되돌리기git branch feature-branch # 새로운 브랜치 생성
git merge feature-branch # 기능 개발 후 병합git diff # 변경된 코드 확인name: CI/CD Pipeline
on: push
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: npm install && npm test