태그: #version-control
GPU·LLM·MLOps·쿠버네티스, 그리고 마음가짐에 관한 글 · 19 편
Git 내부 구조로 이해하는 명령어 — 객체, 참조, 인덱스로 다시 읽는 reset과 rebase
Git 명령을 외우면 매번 검색하게 되지만, 데이터 모델을 알면 명령의 동작이 추론됩니다. 이 글은 blob과 tree와 commit과 tag라는 네 가지 객체, 같은 내용이 언제나 같은 해시를 갖는 콘텐츠 주소 지정, 브랜치가 41바이트짜리 파일에 불과하다는 사실, 그리고 인덱스가 실제로 무엇을 담고 있는지를 cat-file과 ls-files로 직접 열어 보며 확인합니다. 이 모델을 알면
2026-07-26 · 20 분 읽기 #git#internals#git-objects#fundamentals#version-controlgit이 느려질 때 — 대형 저장소를 빠르게 만드는 구조적 처방
저장소가 느려지는 이유는 하나가 아닙니다. 커밋 이력이 긴 것, 파일 수가 많은 것, 큰 바이너리가 들어 있는 것은 서로 다른 문제이고 처방도 다릅니다. 이 글은 먼저 원인을 구분하는 측정 명령부터 시작해, 얕은 클론과 부분 클론이 왜 대체재가 아니라 용도가 다른 도구인지, sparse-checkout과 파일 감시가 status를 어떻게 줄이는지, commit-graph가 로그와 병합 기준점
2026-07-26 · 20 분 읽기 #git#performance#monorepo#git-lfs#version-controlgit 되돌리기 — 상황별로 고르는 restore, reset, revert, reflog
되돌리기 명령을 외우면 매번 검색하게 되지만, 무엇을 되돌리려는지 먼저 분류하면 명령은 저절로 결정됩니다. 워킹 디렉터리, 스테이징, 마지막 커밋 메시지, 커밋 자체, 이미 푸시한 커밋, 삭제한 브랜치까지 여섯 가지 상황으로 나누고 각각의 정확한 명령과 위험도를 정리했습니다. reset의 soft와 mixed와 hard가 HEAD, 인덱스, 워킹 트리 중 무엇을 옮기는지 표로 보여 주고, 푸
2026-07-26 · 19 분 읽기 #git#undo#reset#reflog#version-controlgit merge vs rebase — 무엇을 언제 쓰고, 공유 브랜치는 왜 리베이스하지 않는가
merge와 rebase의 차이는 그림이 아니라 커밋 해시로 봐야 정확합니다. 리베이스는 커밋을 옮기는 명령이 아니라 부모가 달라진 새 커밋을 만드는 명령이고, 해시가 바뀐다는 그 사실 하나가 공유 브랜치를 리베이스하지 말라는 황금률의 유일한 근거입니다. 이 글은 실제 커밋 해시와 reflog 출력으로 그 변화를 보여 주고, 머지 커밋이 소음이라는 통념을 first-parent 로그로 반박하
2026-07-26 · 19 분 읽기 #git#rebase#merge#version-control#workflow.gitignore가 작동하지 않을 때 — 원인 1위와 패턴 규칙 정독
무시 목록에 분명히 적었는데 파일이 계속 올라오는 이유는 대부분 하나입니다. 이미 추적 중인 파일에는 무시 규칙이 적용되지 않습니다. 이 글은 인덱스에서 빼는 정확한 명령과 그 명령이 동료의 작업 디렉터리에서 파일을 지운다는 부작용, 어느 규칙이 범인인지 Git에게 직접 물어보는 check-ignore 사용법과 추적 중인 파일에서는 아무것도 출력하지 않는 함정, 선행 슬래시와 후행 슬래시와
2026-07-26 · 19 분 읽기 #git#gitignore#troubleshooting#security#version-controlgit history — Git이 rebase 옆에 놓은 실험적 history 재작성 명령어
Git 2.54(2026-04-20)에 git history라는 새 명령어가 실험적으로 들어왔고, 2.55(2026-06-29)에서 fixup 서브커맨드가 추가됐습니다. reword/split/fixup 세 가지 흔한 history 재작성 작업을 인터랙티브 rebase 없이 명령 한 줄로 처리하고, 대상 커밋의 자손 브랜치들을 원자적 ref 트랜잭션으로 한꺼번에 갱신합니다. 메인테이너 Pat
2026-07-16 · 28 분 읽기 #git#version-control#jujutsu#rebaseGit은 데이터를 어떻게 저장하나
Git을 매일 쓰면서도 내부가 어떻게 생겼는지는 모르는 경우가 많습니다. blob·tree·commit·tag로 이루어진 객체 모델, SHA 해시로 내용을 주소화하는 방식, 커밋 DAG, 브랜치는 그냥 포인터라는 사실, .git 디렉터리의 실제 모습, 같은 내용이 한 번만 저장되는 이유, 그리고 팩파일까지. Git의 진짜 데이터 모델을 파헤칩니다.
2026-06-13 · 27 분 읽기 #git#version-control#fundamentalsGit Internals Deep Dive — Object Model, Packfile, Merge 알고리즘, Reflog, 프로토콜 완전 정복 (2025)
매일 사용하지만 대부분 개발자가 블랙박스로 여기는 도구, Git. 이 글은 Git의 내부를 처음부터 해부합니다. Content-addressable 파일시스템으로서의 본질, blob/tree/commit/tag 객체 모델, SHA-1 해시 체인, 느슨한 객체(loose object)와 packfile, 델타 압축, refs와 packed-refs, index(스테이징 에어리어), ort 알고
2026-04-15 · 37 분 읽기 #git#version-control#object-model#packfile#mergeGit 내부 구조 완전 해부 — Object, Ref, Packfile, Reflog, Rebase/Merge 메커니즘 끝장 가이드 (2025)
매일 쓰는 git이지만 .git 디렉터리 안을 제대로 들여다본 적 없다면. Blob/Tree/Commit 객체부터 packfile delta 압축, reflog로 되살리기, rebase가 실제로 하는 일, merge 알고리즘(3-way, recursive, ort), 그리고 sha1 → sha256 전환까지 — Git의 그래프 데이터베이스로서의 본질을 10,000자로 파헤칩니다.
2026-04-15 · 34 분 읽기 #git#version-control#internals#packfile#mergeGit 마스터 가이드 — 기초부터 rebase, cherry-pick, bisect, worktree까지
Git의 내부 구조부터 고급 명령어(rebase, cherry-pick, bisect, worktree), 브랜칭 전략, PR 리뷰, 모노레포 관리까지 Git의 모든 것.
2026-04-12 · 22 분 읽기 #devops#git#version-control#github#branchingGit 내부 동작 원리: Blob, Tree, Commit, 그리고 DAG — Git이 진짜로 작동하는 방법
Git의 내부를 완전 해부! Blob/Tree/Commit 객체 모델, SHA-1 해싱, .git 디렉토리 구조, DAG(방향 비순환 그래프), 브랜치의 실체(포인터), merge vs rebase 내부 동작, reflog 복구, pack 파일 압축까지.
2026-03-24 · 30 분 읽기 #git#internals#blob#tree#commitGit 완전 정복: 주니어부터 시니어까지, 실무에서 바로 쓰는 Git 고급 워크플로우
git rebase -i, cherry-pick, bisect, worktree부터 trunk-based development, conventional commits, GitHub Actions CI/CD까지 — 시니어 개발자처럼 Git을 다루는 완전 가이드. 실무 시나리오 20개와 함께.
2026-03-22 · 34 분 읽기 #git#github#version-control#workflow#branchingGit 서버 설정 및 관리
Git을 서버에서 설정하고 관리하는 방법에 대해 알아봅니다.
2024-07-20 · 3 분 읽기 #git#server#version-controlGit 기본 사용법
Git의 기본 사용법에 대해 알아봅니다.
2024-07-20 · 5 분 읽기 #git#version-control분산 Git 사용법
분산 Git의 기본 사용법에 대해 알아봅니다.
2024-07-20 · 4 분 읽기 #git#distributed#version-controlGit과 다른 시스템 통합
Git과 다른 버전 관리 시스템을 통합하는 방법에 대해 알아봅니다.
2024-07-20 · 4 분 읽기 #git#integration#version-controlGit 도구 사용법
Git 도구의 기본 사용법에 대해 알아봅니다.
2024-07-20 · 6 분 읽기 #git#tools#version-controlGit Branching 사용법
Git에서 브랜칭의 기본 사용법에 대해 알아봅니다.
2024-07-20 · 3 분 읽기 #git#branching#version-controlGit 커스터마이징
Git을 커스터마이징하는 방법에 대해 알아봅니다.
2024-07-20 · 4 분 읽기 #git#customization#version-control