![[CLI] init, add, commit 커맨드 구현](https://nullisdefined.s3.ap-northeast-2.amazonaws.com//images/fefdcff0971b15a5a9a327ee02fe693a.png)
[CLI] init, add, commit 커맨드 구현
Git의 기본 명령어인 init, add, commit을 유사하게 구현한 과정이다. Git CLI commander.js 라이브러리를 사용하여 커맨드와 옵션들을 정의하고 CLI Command Line Interface 를 간단히 구현할 수 있었다. 먼저, commander.js를 설치하고 CLI 엔트리 파일 cli.js 을 생성했다. CLI를...
4 Posts found
![[CLI] init, add, commit 커맨드 구현](https://nullisdefined.s3.ap-northeast-2.amazonaws.com//images/fefdcff0971b15a5a9a327ee02fe693a.png)
Git의 기본 명령어인 init, add, commit을 유사하게 구현한 과정이다. Git CLI commander.js 라이브러리를 사용하여 커맨드와 옵션들을 정의하고 CLI Command Line Interface 를 간단히 구현할 수 있었다. 먼저, commander.js를 설치하고 CLI 엔트리 파일 cli.js 을 생성했다. CLI를...

Blob 클래스는 다음 메서드로 구성되어 있다. constructor calculteHash save 코드 설명 매개변수 초기화 처리 과정 git 형식 헤더 추가 \0 SHA-1 해시 계산 및 반환 코드 설명 매개변수 처리 과정 객체 저장 경로 생성 repoPath/.pit/objects// 디렉터리 생성 파일 내용 저장

Git의 핵심 객체들의 구현을 마쳤다. 실제로 이 객체들이 파일시스템에 잘 저장되는지 확인해 볼 필요가 있었다. 먼저 Git 저장소의 기본 구조부터 만들어야 했다. .git 디렉터리를 본떠 .pit 디렉터리를 만들고, 그 안에 필요한 디렉터리를 생성했다. Git과 동일하게 objects 디렉터리는 Git의 모든 객체들이 저장되는 곳이고,...
![[Git] Blob, Tree, Commit Object](https://nullisdefined.s3.ap-northeast-2.amazonaws.com//images/1fc970460a95ea5faf0cef3764835021.png)
Git은 파일과 디렉터리를 효율적으로 관리하기 위해 내부적으로 Blob, Tree, Commit이라는 세 가지 주요 객체를 사용한다. Git의 내부 동작 원리를 이해하기 위해 이 객체들이 무엇인지, 그리고 서로 어떻게 연결되어 있는지 살펴보았다. Blob은 파일의 내용을 저장하는 Git 객체다. Git은 파일의 이름이나 메타데이터 대신, 파일의...