[git] Git과 Github

seyun·2025년 9월 16일

git

목록 보기
1/2
post-thumbnail

git과 github를 사용한지는 벌써 몇 년이 되었지만, 이 두 개를 구분 지어서 생각하지 않고 사용해왔던 것 같다. 항상 git과 github는 같이 사용하는 도구라고 생각했는데, 오늘 수업을 통해 더 명확하게 구분할 수 있게 되었다. 아래는 git과 github에 관해 몰랐거나, 헷갈렸던 부분을 정리한 내용이다.

git

git은 로컬에서 작동하는 분산 버전 관리 시스템이다. 따라서 git 단독으로는 다른 사람들과 협업하거나, 공유하기는 어렵다. git을 통해 프로젝트의 버전을 관리할 수 있다.

cf. 버전 관리?

쉽게 말해, 커밋 시점의 내용들을 모두 저장한다는 의미라고 해석했다. 개발자가 프로젝트를 하면서 수많은 커밋을 진행할텐데, 이 모든 커밋이 저장되어, 원하는 커밋 시점의 파일들을 가져올 수 있다.

github

github는 git 저장소를 클라우드에서 호스팅하는 플랫폼이다. 로컬에서 저장된 git 저장소를 클라우드 상의 원격 저장소로 보내거나, 원격저장소에 있는 내용을 로컬 저장소로 가져올 수 있는 기능을 제공한다. 이를 통해 다른 사람들과 코드를 공유하고 협업할 수 있다. Pull Request에서부터, Issue, Project 등의 다양한 협업 도구를 지원한다.

로컬 저장소와 원격 저장소

위의 다이어그램을 보면서 현재 작업 공간이 원격 저장소로 어떻게 저장되는지 조금 더 자세하게 설명하겠다.

  1. 워킹 디렉토리에 해당하는 로컬 저장소를 git init을 통해 생성함 → .git 파일이 생성됨
  2. 워킹 디렉토리(현재 작업 공간)에 새로운 내용을 작성하거나, 기존 내용을 수정함
  3. git add <파일명 or 디렉토리>를 통해 작업한 내용을 스테이징 영역으로 올림
  4. git commit을 통해 스테이징된 영역에 속한 파일들을 로컬 저장소에 저장
    • 이 때 저장되는 단위는 한 커밋, 하나의 버전이라고 생각하면 됨
  5. git push를 통해 로컬 저장소의 최신 커밋을 원격 저장소에 저장함

원격 저장소에 있는 파일들을 현재 작업 공간으로 옮겨오는 단계는 다음과 같다.

  1. git fetch 를 통해 원격 저장소에 있는 커밋을 로컬 저장소로 옮겨옴
  2. git merge를 통해 로컬 저장소로 옮겨온 커밋의 파일들을 현재 작업 공간에 적용함

이렇게 두 단계로 진행하지만, 보통의 경우에는 git pull을 통해 두 단계를 동시에 실행

cf. 스테이징 영역?

  • 스테이징 영역은 Git의 “index”라고 불리며, 워킹 디렉토리에서 수정된 파일 내용 중 어떤 부분을 커밋에 포함할지 선택하여 준비할 수 있는 중간 단계

cf. 왜 스테이징 영역을 사용?

찾아본 결과 스테이징 영역을 사용하는 주요한 이유는 다음과 같다고 판단했다.

  • 변경 사항 중 어떤 부분을 커밋에 반영할 지 조절할 수 있고, “커밋”의 단위를 확실하게 유지할 수 있음

명령어 Remind

# 최초 git 사용자 정보 입력
git config --global user.name "seyun0714"
git config --global user.email "seun0714@naver.com"
# 현재 환경변수 리스트 출력
git config --list

# 기본 브랜치 이름 설정
git config --global init.defaultbranch main 
# 현재 저장소의 브랜치 이름 변경
git branch -M main

# 원격 저장소 -> 로컬 저장소
git fetch
# 로컬 저장소 -> 워킹 디렉토리
git merge
# fetch + merge
git pull
profile
프론트엔드 개발자 준비 중

0개의 댓글