일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- document
- xss game
- property
- 김성엽 대표님
- IF문
- suninatas 풀이
- 자바스크립트
- htmlspecialchars
- 함수
- window
- jQuery
- object
- blind sql injection
- burp suite
- element 조회
- xss game 풀이
- 객체
- lord of sql injection
- 배열
- 백준 알고리즘
- 사칙연산
- sql injection
- Pwndbg
- 파이썬
- python
- 백준 파이썬
- 포인터
- 조건문
- 메소드
- github
- Today
- Total
power-girl0-0
[GIT] git의 동작원리 본문
해당 게시물은 나동빈 님의 'Git으로 시작하는 협업 및 오픈소스 프로젝트'강의를 바탕으로 작성된 것입니다.
스스로 공부한 것을 정리하고 복습하기 위한 목적으로 작성하였습니다.
기본적으로 깃(Git) 프로젝트에 담겨 있는 데이터들은 파일 시스템 상에서의 스냅샷(Snapshot)이라고 볼 수 있다.
또한, 실제로 프로젝트를 커밋(Commit)하여 적용할 때의 순간을 중요시한다는 특징이 있다.
파일 자체를 저장하기보다 수정 내역 자체를 저장한다.
Git 프로젝트의 3가지 구성요소
Git의 동작 원리를 바르게 이해하기 위해서는 Git 프로젝트의 세 가지 구성요소에 대해서 이해해야 한다.
Working Directory
|
git의 동작원리
깃 프로젝트는 위와 같은 구성요소를 통해 동작하게 된다.
그렇다면 실제로 소스코드를 수정하는 등의 작업을 해서 커밋(Commit)하고, 다시 저장소에 있는 수정 내역을 자신의 컴퓨터로 옮기는 과정들은 어떻게 이루어지는지 아래에서 알아보자.
아래 사진은 Git의 기본적인 동작 과정이다.
원격지에 있는 저장소(Remote Repository)에서 맨 처음에 클론(Clone)을 받으면, 자신의 컴퓨터에 해당 프로젝트가 통째로 다운로드된다.
이후에 자신이 수정한 내역을 다시 원격지 저장소까지 반영하려면 git add, git commit, git push의 과정을 거쳐야 한다.
다시 저장소로부터 수정된 내역을 받을 때에는 git fetch명령어를 통해서 수행한다.
다만, 이러한 과정에서 내가 수정한 내역이 원격지 저장소에 있는 내역과 다를 수 있기 때문에 git merge를 수행하여 자신의 컴퓨터에 있는 소스코드를 원격지 저장소와 맞추는 것이다.
더불어 git fetch와 git merge를 한 번에 사용하는 명령어인 git pull를 사용할 수 있다.
저장소(Repository)
저장소(Repo)는 실제 소스코드가 담겨 있으면서 커밋(Commit) 내역 등의 모든 작업 이력이 담겨 있는 공간을 의미한다.
실제로 프로젝트의 메타 데이터를 포함해 각종 데이터는 .git 폴더에 담기게 되며, 해당 폴더를 열어 보면 각종 데이터와 해시 값 등이 담겨 있다.
어떠한 파일을 Commit 하게 되면 각 작업들을 분류하기 위해 내부적으로 해당 작업에 대한 해시(Hash) 값을 이용하는 것이다.
일반적으로 해시 값은 충돌이 발생하지 않기 때문에 정확히 커밋 내역들을 관리할 수 있다.
'개발' 카테고리의 다른 글
[GIT] git에서 commit(커밋) 내용 수정하기 (0) | 2021.02.17 |
---|---|
[GIT] git 저장소에 반영하기 (0) | 2021.02.17 |
[GIT] git 등장 배경과 장점 (0) | 2021.02.17 |
[GIT] 오픈소스의 개요 및 오픈소스 활동을 하는 이유 (0) | 2021.02.17 |
[GIT] git 설치 및 사용법 익히기 (0) | 2021.02.17 |