Project/Git, Github

[Git].ch3. GitHub 사용

JSJH._. 2026. 1. 21. 17:08

[Git].ch3. GitHub 사용법과 원격 저장소

1. 내 코드 올리기 (git push)

Repository(저장소)란?

  • 파일 버전을 저장해두는 장소입니다.
  • 로컬 저장소: 내 컴퓨터 작업 폴더 내의 .git 폴더
  • 원격 저장소(Online Repository): GitHub 같은 온라인상의 저장소
    • 컴퓨터의 저장소를 백업하거나 타인과 협업할 때 사용합니다. 사실상 git을 쓰는 중요한 이유

GitHub에 올리는 과정

  1. Repository 생성: GitHub 로그인 후 우측 상단 + 버튼을 눌러 생성
  2. 주소 연결: git remote add origin 저장소주소
  3. 코드 업로드: git push -u origin main
    • -u: 주소를 기억시키는 옵션 (다음부터는 git push만 입력 가능)
# 기본 브랜치 이름 변경 (GitHub 권장)
git branch -M main

# 원격 저장소 연결
git remote add origin [https://github.com/내아이디/저장소.git](https://github.com/내아이디/저장소.git)

# 코드 업로드
git push -u origin main

참고

  • .gitignore: 저장소에 올리지 않을 파일들을 명시하는 파일 (예: 비밀번호, 용량 큰 라이브러리 등)
  • 원격 저장소 내리기: git clone 저장소주소 (새로운 작업 폴더에 복제)

2. 협업하기 (Collaboration)

팀원과 코드 공유

팀원은 git clone으로 코드를 내려받아 작업합니다.

  • Collaborators 등록: GitHub 설정에서 팀원을 추가해야 push 권한이 생깁니다.

    ▲ 팀원의 아이디를 Collaborators 메뉴에 등록해놔야 협업가능

팀원 Commit 문제 해결 (Push 에러)

원격 저장소가 타인에 의해 업데이트되어 내 로컬 저장소보다 최신 상태라면, git push가 거부됩니다.

  • 해결법: git pull을 먼저 해서 원격 저장소의 최신 내용을 가져와야 합니다.
    git pull origin main
    # 1. 원격 저장소 내용 가져오기 (fetch)
    # 2. 내 코드와 합치기 (merge)
    # 3. 이제 push 가능!

결론: 변동 사항이 생겼으면 git pull 하고 나서 git push 합시다.
혼자 할때는 이런 걱정은 딱히 없지만 평생 혼자할거는 아니니까.


3. 브랜치로 협업하기 (Pull Request)

브랜치 생성 및 업로드

협업할 때는 main 브랜치를 직접 건드리지 않고, 새로운 브랜치를 만들어서 작업합니다.

  1. GitHub에서 직접 생성: main 버튼 눌러서 입력

    ▲ main 브랜치명 버튼 누르면 브랜치 변경/생성
  2. 로컬에서 생성 후 업로드:
  3. git push origin 로컬브랜치명

Pull Request (PR)

GitHub의 꽃, Pull Request는 "내 브랜치를 main에 합쳐주세요"라고 요청하는 기능입니다. (코드 리뷰 가능)

  • github.com 웹사이트 pull request

    ▲ Pull requests 메뉴 초록버튼 pull request 생성


▲ 어떤 브랜치를 어디에 합칠 것인지? 하단에서 commit 내역, 변경내역


▲ Pull requests 메뉴에서 확인가능


merge 할 때 여러가지 옵션 택1

Merge 전략 3가지

GitHub 웹사이트에서 PR을 승인할 때 선택할 수 있는 옵션들입니다.

  1. Create a merge commit: 합쳐졌다는 흔적(새로운 커밋)을 남기는 3-way merge
  2. Squash and merge: 합쳐질 브랜치의 커밋 내역을 하나로 압축해서 합침 (커밋 내역 깔끔)
  3. Rebase and merge: 커밋 내역을 main 뒤에 이어 붙임 (Fast-forward와 비슷)

참고: 되돌리기 주의사항

  • 이미 원격 저장소에 올린(push) 내역을 git reset으로 지우고 강제로 올리면(push -f), 팀원들 코드가 다 꼬입니다.
  • 협업 중에는 revert를 사용하거나, GitHub의 Revert 버튼을 사용하세요.

이미지 출처

제가 git/github를 배우면서 봤던 코딩애플님의 강의에 나온 설명 이미지를 사용했습니다
https://codingapple.com/course/git-and-github/

'Project > Git, Github' 카테고리의 다른 글

[Git].ch4.브랜치 전략  (0) 2026.01.22
[Git].ch2.유용한 명령어  (0) 2026.01.20
[Git].ch1.Git기초  (1) 2026.01.18