logo

Tree

4 Posts found

[CLI] init, add, commit 커맨드 구현
GitCLICommit2025.01.23

[CLI] init, add, commit 커맨드 구현

Git의 기본 명령어인 init, add, commit을 유사하게 구현한 과정이다. Git CLI  commander.js 라이브러리를 사용하여 커맨드와 옵션들을 정의하고 CLI Command Line Interface 를 간단히 구현할 수 있었다. 먼저, commander.js를 설치하고 CLI 엔트리 파일 cli.js 을 생성했다. CLI를...

Git 객체 생성 및 저장 테스트
GitBlobTree2025.01.10

Git 객체 생성 및 저장 테스트

Git의 핵심 객체들의 구현을 마쳤다. 실제로 이 객체들이 파일시스템에 잘 저장되는지 확인해 볼 필요가 있었다. 먼저 Git 저장소의 기본 구조부터 만들어야 했다. .git 디렉터리를 본떠 .pit 디렉터리를 만들고, 그 안에 필요한 디렉터리를 생성했다. Git과 동일하게 objects 디렉터리는 Git의 모든 객체들이 저장되는 곳이고,...

Tree 객체 구현
GitTree2025.01.10

Tree 객체 구현

Tree 클래스는 다음 메서드로 구성되어 있다. constructor addEntry serialize calculateHash save 객체 타입은 "tree"로 설정하며, 파일과 디렉터리 정보를 저장할 Map 객체를 생성한다. hash의 경우 null로 초기화해둔다.  entries는 다음과 같은 구조를 지닌다. 코드 설명 매개변수...

[Git] Blob, Tree, Commit Object
GitBlobTree2025.01.07

[Git] Blob, Tree, Commit Object

Git은 파일과 디렉터리를 효율적으로 관리하기 위해 내부적으로 Blob, Tree, Commit이라는 세 가지 주요 객체를 사용한다. Git의 내부 동작 원리를 이해하기 위해 이 객체들이 무엇인지, 그리고 서로 어떻게 연결되어 있는지 살펴보았다. Blob은 파일의 내용을 저장하는 Git 객체다. Git은 파일의 이름이나 메타데이터 대신, 파일의...