Git(14)
-
recursive merge strategy
Merge made by the recursive strategy.라는 메시지는 Git이 브랜치 merge 작업을 수행할 때 사용한 merge 전략 을 알려주는 출력입니다. 🔧 recursive merge 전략이란?recursive는 Git의 기본 merge 전략으로, 두 개의 브랜치가 공통 조상을 가질 때 3-way merge를 수행하는 전략입니다.🔁 요약하면:Git이 merge 하려는 두 브랜치가 하나의 공통 조상(base commit) 을 가지면,그 조상과 두 브랜치를 비교해서,3-way merge 방식으로 새로운 merge 커밋을 생성합니다.✅ 예시 상황git merge feature현재 브랜치가 main이고, feature 브랜치를 merge 하려고 할 때,두 브랜치의 공통 조상이 있는 경우..
2023.06.28 -
ort merge strategy
🔍 ort Merge 전략이란?ort는 Git 2.34 (2021년 11월 출시)부터 기본 병합 전략으로 채택된 신형 merge 전략입니다.이 전략은 기존의 recursive 전략을 논리적으로 동일하지만 훨씬 빠르게 수행하기 위해 완전히 새롭게 재작성된 merge 엔진입니다.📌 이름의 유래OptimizedRecursiveTree merge→ 줄여서 ort (발음: 오트) 1. 🎯 도입 배경: 왜 recursive를 대체했는가?기존의 recursive merge 전략은 다음과 같은 문제점이 있었습니다:문제점설명성능 저하대형 리포지토리(예: 리눅스 커널) merge 시, merge에 수 분 이상 소요메모리 비효율트리 비교를 재귀적으로 수행 → call stack 깊이 증가 및 객체 재사용 어려움merg..
2023.06.28 -
git checkout
git checkout 명령어는 단순한 브랜치 전환 이상의 복합적인 Git 내부 작업을 수행하며, Git의 워킹 디렉토리, 인덱스(Index), HEAD, 그리고 리퍼런스(refs) 사이의 동작 원리를 이해해야만 그 진면목을 파악할 수 있습니다. ✅ 개요: git checkout은 무엇인가?git checkout은 Git에서 HEAD 포인터를 이동하거나, 특정 커밋 또는 브랜치의 스냅샷을 워킹 디렉토리에 복원하는 데 사용됩니다. 이것은 다음과 같은 두 가지 유형의 동작으로 구분됩니다:브랜치 기반 checkout: HEAD 포인터를 다른 브랜치로 이동하고, 그 브랜치가 가리키는 커밋을 워킹 디렉토리와 인덱스에 반영합니다.파일/트리 기반 checkout: 특정 커밋이나 브랜치로부터 특정 파일이나 디렉토리를 ..
2023.06.28 -
git rebase 시, --continue 옵션 사용
git rebase는 커밋 히스토리를 깔끔하게 유지하거나 브랜치를 재정렬하는 데 유용한 명령어입니다. 예시를 통해 git rebase 사용 방법을 설명드리겠습니다. 상황 설정main 브랜치가 있습니다.feature라는 새로운 브랜치를 만들고 이 브랜치에서 작업을 합니다.feature 브랜치에서 몇 가지 커밋을 만듭니다.이 과정에서 main 브랜치에 몇 가지 커밋이 추가됩니다.이제 feature 브랜치를 main 브랜치 위에 재정렬(rebase)하려고 합니다. 예제1. 초기화 및 기본 브랜치 생성git init rebase-examplecd rebase-example# 파일 하나 만들고 커밋echo "Hello, World!" > file.txtgit add file.txtgit commit -m "Ini..
2023.06.28 -
merge class : index.html
footer가 없는 index.html 웹페이지 본문 이곳은 본문 내용입니다. footer가 추가된 index.html 웹페이지 본문 이곳은 본문 내용입니다. © 2025 MyCompany. All rights reserved. About | Contact | GitHub
2023.06.26 -
Detached HEAD
detached HEAD는 Git에서 현재 작업 중인 위치가 브랜치가 아닌 커밋 해시를 직접 참조하는 상태를 의미합니다. 즉, HEAD 포인터가 브랜치를 가리키는 것이 아니라, 특정 커밋 객체(해시)를 직접 가리키는 상태입니다. 이 상태는 일시적인 실험이나 특정 시점의 확인에는 유용하지만, 그 상태에서 커밋을 만들면 이력이 브랜치에 저장되지 않기 때문에 주의가 필요합니다. 🔍 HEAD란?먼저 HEAD를 정확히 이해해야 합니다.HEAD는 현재 작업 중인 브랜치 또는 커밋을 가리키는 포인터입니다.일반적으로는 다음과 같은 상태입니다:HEAD → refs/heads/main → HEAD는 refs/heads/main (즉, 브랜치 main)을 가리킵니다.main은 최신 커밋의 해시를 가리킵니다. 🎯 Deta..
2023.06.26