본문 바로가기

CS지식

[Git] Git 동작원리

반응형

Git 이란?


버전 관리를 위한 도구이며, 소스 코드의 변경 사항을 추적하고 협업을 가능하게 해주는 도구

팀 프로젝트에서 매우 유용하며, 개발자가 코드의 변경 이력을 관리하고 공유할 수 있도록 도와줌

 

 

Git 용어 정리


origin : 원격 저장소 ( GitHub )에 있는 코드

 

Head : 현재 작업하고 있는 로컬 브랜치  ( 사진 처럼 내 브랜치는 seungmin2이다.)

 

add : Working Directory에서 Staging Area에 등록

 

commit : Staging Area에 등록된 파일을 Local Repository( 로컬 저장소 )에 등록 

 

Push : 로컬 저장소에서 변경된 파일들을 Remote Repository( 원격 저장소 GitHub )로 전달 

 

fetch : Remote Repository의 변경된 파일들을 로컬 저장소로 가져옴 ( 병합 X )

 

merge : 로컬저장소의 변경 사항들을 Working Directory에 반영 ( 병합 O )

 

git pull : 원격 저장소에서 최신 변경 사항을 가져와 로컬 저장소에 병합

 

branch : main브랜치의 코드를 통채로 복사한 후, 원래 코드에 영향을 주지않으며 독립적으로 개발할 수 있는 기능

 

checkout : 저장소의 git log로 확인한 특정 커밋으로 이동 및 main 브랜치에서 다른 브랜치에서 작업을 할때 사용됨.

 

clone : 로컬에서 작업하기 위해 Remote Repository( GitHub )를 복제해 내 PC의 폴더에 Local Repository로 저장

 

fork : 다른 사용자가 원격 저장소에서 어떤 부분을 수정하거나, 추가 기능을 넣고 싶을때 해당 원격 저장소를

내 원격 저장소에 그대로 복제하는 기능

 

 

Git 동작 


 

 

 

1. Working Directory ( 작업 디렉토리 )

자신의 컴퓨터에서 프로젝트의 실제 파일이 있는 디렉토리

 

 

해당 영역에서의 명령어

git status

작업 디렉토리의 현재 상태를 확인하고, 어떤 파일이 수정되었는지 보여줌

 

 

git add 파일


현재 위치하고있는 경로에 있는 폴더에 있는 파일
git add .

현재 위치해있는 경로에 있는 Member.java
git add Member.java

 

변경된 파일을 Staging Area에 추가

 

 

 

2. Staging Area ( 스테이징 영역 )

커밋( Commit )을 준비하는 영역

 

Working Directory에서 git add 명령어를 사용하여

파일을 Staging Area에 올리면 해당 변경 사항이 다음 커밋에 포함될 준비를 함.

 

 

해당 영역에서의 명령어

git add 파일

 

변경된 파일을 Staging Area에 추가

 

 

git reset 파일

 

Staging Area에서 파일을 제거하고, 다시 Working Directory로 되돌림

 

 

 

3. Local Repository ( 로컬 저장소 )

로컬 컴퓨터에 있는 Git 저장소

Staging Area에서 준비된 파일들을 로컬 저장소에 커밋하여 버전 관리할 수 있음.

 

해당 영역에서의 명령어

git commit -m "메시지내용"

 

Staging Area에 있는 변경 사항을 로컬 저장소에 커밋합니다.

 

git log

 

로컬 저장소에 기록된 커밋 이력을 확인

 

 

 

4. Remote Repository ( 원격 저장소 )

GitHub 등 원격 서버에 있는 Git 저장소 ( git Repository )

로컬에서 작업한 내용을 다른 사람과 공유하거나, 백업, 협업등에서 사용됨.

 

해당 영역에서의 명령어

git push origin "브랜치"

 

로컬 저장소의 커밋을 원격 저장소에 업로드

ㅇㄹㄴㅇㄴ

사진과 같이 main 브랜치 이외의 브랜치

 

git pull

원격 저장소에서 최신 변경 사항을 가져와 로컬 저장소에 병합

 

git fetch

원격 저장소에서 변경 사항을 가져오지만, 로컬 저장소와 병합하지 않음.

 

git merge

git fetch로 가져온 원격 변경 사항을 로컬 브랜치와 병합함.

 

git checkout

특정 커밋으로 체크아웃

저장소의 git log로 확인한 특정 커밋으로 이동하고 싶을때와  main 브랜치에서 다른 브랜치에서 작업을 할때 사용됨.

 

 

 

Git 명령어와 위치 


명령어 위치 설명
git add Working Directory -> Staging Area 변경된 파일을 Staging Area에 추가
git commit Staging Area -> Local Repository Staging Aread에 있는 파일을 커밋하여 로컬 저장소에 저장합니다.
git push Local Repository -> Remote Repository 로컬 저장소의 커밋을 원격 저장소에 업로드
git fetch Remote Repository -> Local Repository 원격 저장소의 변경 사항을 가져옴 ( 병합하진않음 )
git merge Local Repository Fetch한 변경 사항을 로컬 브랜치에 병합
git pull Remote Repository -> Local Repository  Fetch + Merge  원격 저장소의 변경 사항을 가져와
로컬 브랜치에 병합

 

 

 

 

 

 

 

반응형