git의 commit에 대해 혼동하기 쉬운 개념을 설명한 글입니다. 매우 간단하게 요약하면 아래와 같습니다. - git에 존재하는 모든 객체의 ID(OID)는 hash로 표현됩니다. - git의 구조는 기본적으로 blob과 tree로 이루어져 있습니다. 쉽게 얘기 하면 tree는 디렉토리, blob은 파일입니다. - commit은 특정 시간에 생성한 root tree 아래의 스냅샷입니다. commit은 root tree를 가리키는 pointer와 parent commit 리스트, author/committer/commit message 등의 meta 정보를 갖고 있습니다. - branch는 특정 commit을 가리키는 pointer입니다. git의 다른 요소들은 immutable지만 branch는 변경이 가능합니다. - git diff는 root tree부터 depth-first search(DFS)로 두 개의 commit에서 다른 OID를 가진 객체의 tree만을 traverse해서 실시간으로 생성합니다. 두 commit에서 동일한 tree는 탐색하지 않으므로 diff의 비용은 서로 다른 객체에 도달하는 path의 수에 따라 달라집니다. - cherry-pick, rebase 등은 모두 기준 commit과 부모와의 diff를 실시간으로 계산하여 적용하고 HEAD pointer를 이동시키는 방식으로 이루어집니다. ——— (🚀 채용 광고) '신상마켓'을 운영하는 딜리셔스에서는 동대문 패션 생태계를 기술을 통하여 더 나은 모습으로 디지털화하고 함께 성장하여 글로벌까지 연결하는 꿈을 갖고 있습니다.🚀 이런 분들을 찾고 있습니다. - Java / Ruby Developers - Android / iOS Developers - Web Developers (React.js / Vue.js) - Data Engineers on AWS - DevOps on AWS - Product Managers / Product Designers - Data Analysists - Ad Platform Developers / PMs b2b 뿐만 아니라 b2b2c/글로벌 등 다양한 제품군을 준비 중이고 📱 주도적으로 오너쉽을 갖고, 자율적으로 일하는 환경을 지향합니다 ☺️ 채용 더 알아보기 >> https://www.wanted.co.kr/company/3059

Commits are snapshots, not diffs - The GitHub Blog

The GitHub Blog

Commits are snapshots, not diffs - The GitHub Blog

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2021년 1월 6일 오전 3:42

댓글 1

  • 삭제된 사용자

    2021년 01월 06일

    snapshot이라기보다도 diff path에 가깝네요

함께 읽은 게시물

Git에서 저희가 일반적으로 사용하는 git add나 git commit 같은 명령어를 Porcelain 명령어라고 하고 보다 저수준작업을 하는 명령어는 Plumbing 명령어라고 부릅니다.

... 더 보기

Creating a Git commit: The Hard Way

Avestura's Blog

Creating a Git commit: The Hard Way

 • 

저장 105 • 조회 5,695


기회



... 더 보기

조회 557




🌐 개발자가 알고 있으면 좋은 사이트

G

... 더 보기

Dev Ranking

Vercel

Dev Ranking

 • 

저장 259 • 조회 8,613


고용노동부가 주관하는 청년미래플러스 사업, 이전에 공유했었는데요.

... 더 보기

청년미래플러스 참여 재직자 1기 모집

한국소프트웨어산업협회

청년미래플러스 참여 재직자 1기 모집