git & github 공부 기록

Git 동작 원리

stop-zero 2023. 1. 17. 18:14

https://www.youtube.com/watch?v=66c9QBXM2Fs&list=PLRx0vPvlEmdD5FLIdwTM4mKBgyjv4no81&index=4 


git 동작 원리

깃 프로젝트에 담겨 있는 데이터들은 파일 시스템 상의 스냅샷이다.

실제 프로젝트를 커밋하여 적용할 때의 순간이 중요하다. 

파일 자체를 수정하기보다 수정 내역 자체를 저장한다. 

= 효율적인 메모리 사용

 

git 프로젝트의 세가지 요소

- working directory : 작업할 파일의 디렉토리

- staging area : 커밋 수행할 파일이 올라가는 부분 (git add 명령의 영역)

- git directory : git 프로젝트의 메타 데이터와 데이터 정보가 저장되는 디렉토리 (.git 폴더 지우면 X)

 

git 동작 과정

<원격저장소에 수정한 코드 저장하는 과정>

1. Working Directory 에서 수정한 코드를 git add 를 이용하여 Staging Area 로 보낸다.

2. Staging Area에서 git commit 으로 수정 내역들이 Local Repository에 저장된다.

3. commit 된 내용은 git push로  깃허브의 원격저장소(Remote Repsotiory) 로 보내진다. 

 

<원격저장소에 있는 데이터 가져오는 과정>

1. git fetch : 다른 사람이 작업한 데이터를 내 컴퓨터로 받는다.

2. git merge :  동시 작업으로 인한 충돌 발생할 수 있기에, 로컬 리포지토리랑 리모트 리포지토리를 맞춰준다.

git pull : 위에 두 가지 명령(git fetch&git merge)을 한 번에 사용하는 명령어를 사용해도 된다.

 

저장소(repository)

:소스코드, 파일, 커밋 내역 등의 모든 작업 이력이다.

실제로 프로젝트의 메타 데이털르 포함해 각종 데이터는 .git에 담기게 된다.

각종 수정 내역들이 파일 형태로 저장되는 것을 확인할 수 있다. 

각각의 작업 내역을 구분할 수 있도록 해시 값을 사용하고, 커밋 내역을 관리한다.