[Git] GitHub

SeungWoo Cha·2025년 9월 20일

[Git] Git_GitHub

목록 보기
4/4

1. GitHub

1.1. Repository

  • Git이 파일 버전을 저장하는 장소.
  • .git 폴더가 로컬 저장소(repository).
  • 내 컴퓨터에 만든 git 저장소를 의미.

1.2. GitHub

  • 온라인 원격 저장소 서비스.
  • 로컬 저장소를 원격에 업로드 가능.
  • 협업(코드 공유, 협력 개발)에 필수.

1.3. 사용 방법

# 로컬 저장소 생성
git init  

# 기본 브랜치 이름 변경 (master → main)
git branch -M main  

# 로컬 저장소 → 원격 저장소 push
git push -u https://github.com/username/repo.git main  
  • -u: 원격 주소 저장, 이후 git push만 입력해도 가능.

1.4. Git 변수 생성 (remote)

# 원격 저장소 주소를 변수(origin)에 저장
git remote add origin https://github.com/username/repo.git  

# 변수 확인
git remote -v  

# push 시 활용
git push -u origin main

1.5. 원격 저장소 내려받기 (clone)

git clone https://github.com/username/repo.git
  • 협업 시에는 git init 필요 없음.

1.6. .gitignore

  • 불필요한 파일을 원격에 올리지 않도록 설정.
# .gitignore 예시
*.log
node_modules/
.env

2. git clone, pull

2.1. git clone

  • 원격 저장소를 복제해서 새로운 작업 환경 생성.
git clone https://github.com/username/repo.git
  • 특정 브랜치만 가져오기:
git clone -b feature-branch https://github.com/username/repo.git

2.2. git pull

  • 원격 저장소의 최신 변경 내용을 가져와 로컬에 병합.
git pull origin main
  • 동작 원리: git fetch + git merge.

2.3. 주의사항

  • 원격과 로컬이 다른 경우 git push가 불가.
  • 반드시 git pullgit push 순서로 진행.
  • 충돌(conflict) 발생 시 수동 해결 필요.

3. Pull Request

3.1. 원격 저장소 브랜치 생성

# 로컬에서 만든 브랜치 push
git push origin feature-branch
  • GitHub 웹에서 브랜치 생성도 가능.

3.2. Pull Request (PR)

  • 팀 협업 시 코드 병합 전 검토 과정.
  • 브랜치 변경사항 → main 병합 요청.

옵션

  1. Create a merge commit : 일반 merge (3-way merge).
  2. Squash and merge : commit 내역 압축 → main에 1개 commit.
  3. Rebase and merge : 브랜치 이력을 main 최신 commit으로 rebase 후 병합.

3.3. 주의사항

  • git reset --hard + git push -f로 강제 되돌리기 가능하나, 협업 환경에서는 위험.
  • GitHub에서 Revert 버튼 사용 시 "되돌리는 commit"이 생성됨.

4. Git Flow / Trunk-based 전략

4.1. Git 브랜치 전략

  • 대표적인 방법론:

    • Git Flow
    • GitHub Flow
    • GitLab Flow
    • Trunk-based Development

4.2. 장점

  • 브랜치 관리 용이.
  • 팀원이 많아도 개발 절차가 체계적.
  • 협업 시 충돌 최소화.
profile
한 발자국씩

0개의 댓글