git/ github

seyeon·2025년 4월 7일
post-thumbnail

어.. 두개가 다른건지 처음 알았다.. 🫨

Git과 GitHub란?

Git(깃)은 버전 관리 시스템이고, GitHub(깃허브)는 Git으로 관리하는 프로젝트를 올려둘 수 있는 사이트이다

Git 🔨

Git은 버전 관리 도구다.
코드를 수정하거나 새로 추가할 때 변경 사항을 기록하고 관리할 수 있다.
코드가 바뀔 때마다 저장소에 기록을 남겨서 이전 버전으로 돌아갈 수 있는 타임머신 같은 역할을 한다.

예를 들어, 내가 원하는 시점마다 깃발을 꽂고, 깃발이 꽂힌 시점으로 자유롭게 이동할 수 있다면 편안하게 새로운 소스 코드를 추가하거나 삭제할 수 있을 것이다. 소스 코드 오류가 발생한다면 바로 전에 깃발을 꽂은 시점으로 돌아가면 되니 말이다.
이를 가능하게 해 주는 소스 코드 버전 관리 시스템이 바로 Git이다.

Git은 데이터를 저장할 공간만 있다면 어디서나 사용할 수 있다. 개인 컴퓨터에만 저장한다면 나 혼자 사용할 수 있답! USB에 저장한다면 휴대하면서 어디서든 내가 작업하던 프로젝트를 사용할 수 있을 것이다. 만약 드롭박스, 구글 드라이브와 같은 클라우드 서버에 올려둔다면 어떨까? 팀 프로젝트를 진행하는 다른 팀원과 함께 인터넷을 통해 버전 관리를 할 수 있을 것이다. 이처럼 언제 어디서든 버전 관리를 할 수 있다는 장점은 전 세계의 수많은 개발자가 Git으로 협업하는 이유이다.

GitHub 🤝

Git 은 소스 코드 기록을 관리하고 추적할 수 있는 버전 관리 시스템이라면 Github 는 Git Repository를 관리할 수 있는 클라우드 기반 서비스다.

GitHub의 기능에는 개발자 커뮤니티 구축,
오픈 소스 프로젝트의 호스팅, 이슈 트래킹, 코드 리뷰,
그리고 GitHub Actions을 이용한 CI/CD가 포함된다.
Git으로 버전을 관리하는 폴더에 대해서 Github를 통해 여러 사람들이 공유하고 접근할 수 있는 것이다.

한 마디로 개발자들의 SNS이다. Github에서 Code Review 등을 통해 협업이 가능하고, 수많은 오픈 소스 프로젝들이 Github로부터 호스팅되고 있어서, 누구든 자유롭게 기여할 수 있다.

Git Repository

Git Repository 는 저장소, 폴더를 저장해두는 곳이다.

  • Remote Repository: 원격 저장소 전용 서버에 저장되는 저장소
  • Local Repository : 나의 PC에 저장되는 개인 전용 저장소

Git 의 기본 동작 🧐

1) Working Directory : 작업 파일이 있는 폴더

Working Directory는 작업 중인 파일들이 저장되는 디렉토리이다. Git은 Working Directory의 변경 이력을 추적하지 않고, 대신 변경된 파일들을 Staging Area에 추가하여 커밋할 준비를 한다. 따라서 Working Directory에서는 파일의 변경, 추가, 삭제 등이 자유롭게 이루어질 수 있다.

2) Staging Area : Git 에 등록할 커밋 파일들이 올라가는 영역

Staging Area는 커밋할 파일들의 변경 이력을 저장하는 공간. Git은 Working Directory의 변경 이력을 추적하지 않고, 대신 Staging Area에 추가된 파일들의 변경 이력을 추적한다. 따라서 커밋을 하기 전에 변경된 파일들을 Staging Area에 추가하여 변경 이력을 정리할 수 있다.

3) Local Repository : 로컬 Git의 메타 데이터와 데이터 정보가 저장되는 영역

Local Repository는 커밋된 변경 이력이 저장되는 로컬 저장소. Git은 커밋된 변경 이력을 Local Repository에 저장하며, 변경 이력들은 브랜치(branch)와 같은 구조로 저장된다. 브랜치는 하나의 커밋 히스토리를 나타내며, 브랜치를 변경하면 Local Repository에서 해당 브랜치의 커밋 히스토리가 변경된다.

4) Remote Repository : Github 등의 웹서비스를 통한 온라인 저장소

Remote Repository는 로컬 저장소의 변경 이력을 공유하기 위한 원격 저장소. Git은 Remote Repository에 Push하여 로컬 저장소의 변경 이력을 원격 저장소에 반영하며, Pull하여 원격 저장소의 변경 이력을 로컬 저장소에 가져올 수 있다. Remote Repository는 다수의 사용자가 함께 작업할 수 있는 협업 환경을 제공한다.

ㄷ끗!

0개의 댓글