[학습 저장소] Git에 대하여

김정현·2024년 7월 15일

이번에 공부를 진행하면서 git에대해서 한번 정리해두면 나중에도 좋을거같아서 정리해보려고한다.

git과 Github

git이란?

git분산 버전 관리 시스템(DVCS)으로, 개발 과정에서 소스 코드의 변경 사항을 추적하고 관리하는데 사용된다.
파일의 변화스냅샷이라는 형태로 저장하며 이전의 스냅샷포인터를 가지고 있어 수정사항이 생긴 여러개의 소스 코드의 변경 이력을 관리한다.
그럼 여기서 말하는 분산 버전 관리 시스템은 무엇일까?

버전 관리 시스템

  • 문서, 설계도, 소스 코드 등의 변경 사항을 시간에 따라 기록하고 관리하는 소프트웨어
  • 주로 소프트웨어 개발 과정에서 소스 코드의 변경 이력을 관리하는데 사용된다.

중앙 집중식 버전 관리 시스템

  • 버전 관리 자료가 중앙 시스템(서버)에서 관리하는 방식
  • 자신의 PC로 복사 / 작업 후 중앙 서버에 업로드하는 방식

분산 버전 관리 시스템

  • 개발자의 로컬 컴퓨터에 저장소가 존재하는 분산 구조 형태

Github란?

git 저장소를 호스팅하고 관리하는 웹 기반 서비스이다.
개발자들이 협업하고 소스 코드를 공유할 수 있는 플랫폼을 제공한다.
버전 관리 기능 외에도 이슈 트래커, 프로젝트 관리, 코드 리뷰등의 부가 기능을 제공한다.

내가 이해한 대로 정리해보자면.. git이란 분산 버전 관리 시스템을 기반으로 서비스를 제공하는 Github를 통해 개발자들이 여러가지 부가기능을 통해 보다 쉽게 협업을 할 수있다.

git 필수 명령어

이번에는 git을 사용하려면 필수로 알아야하는 명령어에 대해서 정리해보려고한다.
그전에 해당 명령어들을 조금 더 이해하기 쉽게 git의 3가지 영역에 대해서 간단하게 알아보자.

git의 3가지 영역

워킹 디렉토리

실제 소스 파일과 생성한 파일들이 존재하는 영역
개발자가 파일을 생성, 수정, 삭제등 실제 작업이 이루어지는 영역

스테이징 영역

워킹 디렉토리와 로컬 저장소 사이에 위치하는 임시 영역
git add 명령어를 통해 워킹 디렉토리의 변경 사항을 스테이징 영역에 추가할 수 있다.
스테이징 영역에 있는 파일들은 commit에 포함될 준비가 된 상태

로컬 저장소

개발자의 컴퓨터에 존재하는 Git 저장소
git commit 명령어를 통해 스테이징 영역의 변경 사항을 로컬 저장소에 저장할 수 있다.

원격 저장소

원격 서버에 존재하는 Git 저장소
로컬 저장소와 원격 저장소간에 git push & pull을 통해 데이터를 주고받을 수 있다.

git 명령어

add
변경된 파일을 Git의 스테이징 영역에 추가한다.

commit
스테이징 영역의 변경 사항을 로컬 저장소에 저장한다.

branch
새로운 브랜치를 생성한다.

checkout(또는 switch)
특정 브랜치로 이동한다.

push
로컬 저장소의 변경 사항을 원격 저장소에 업로드한다.

pull
원격 저장소의 변경 사항을 로컬 저장소로 가져온다.

PullRequest?

PR은 오픈 소스 프로젝트나 협업 프로젝트에서 코드 변경 사항을 제안하고, 이를 프로젝트에 병합하도록 요청하는 기능

PR의 흐름
1. Fork를 통해 원본 저장소를 자신의 저장소로 복사한다.
2. 복사한 저장소에서 새로운 기능이나 버그 수정을 위해 브랜치를 생성한다.
3. 생성한 브랜치에서 작업을 진행하고 변경사항을 commit한다.
4. 로컬 브랜치의 변경 사항을 원격 저장소의 브랜치로 push한다.
5. 원본 저장소에 PR을 생성하여, 변경 사항을 원본 저장소의 브랜치에 반영하도록 요청한다.
6. 변경사항이 승인되면 PR을 원본 저장소의 브랜치에 병합하나다.

❗clone을 통해 PR을 요청할 수 있다.
Fork는 원본 프로젝트에 기여할 권한이 없거나, 원본 프로젝트와 독립적으로 작업을 수행하고자 할 때 사용한다.
Clone은 원본 프로젝트에 직접 기여할 권한이 있을 때 사용한다.

profile
안녕하세요 반갑습니다

0개의 댓글