git

이용구·2025년 1월 12일

git rebase와 git merge의 차이점을 설명하고, 각각 어떤 상황에서 사용하는 것이 적절한지 설명해 주세요.

merge는 두 개의 브랜치를 하나의 merge commit으로 병합.


rebase는 "나를 쟤 위로 올려" - 브랜치의 베이스를 옮기는 개념.

merge는 협업 시 충돌 해결이 필요한 경우 출동이 발생한 시점의 기록을 유지하기 때문에 기록을 보존한다.

반면 rebase는 히스토리가 선형으로 결합(정리) 되기 때문에 깔끔한 히스토리를 유지하기 좋지만, 협업 브랜치처럼 상황에 따른 히스토리 파악이 어렵다.





git fetch와 git pull의 차이점을 설명하고, 각각을 사용하는 것이 적절한 상황을 설명해 주세요.

pull는 차이만 당겨오는 것이다.

저장소의 변경 사항을 가져와 로컬 브랜치에 병합하여 작업 디렉토리에 적용한다.

git pull은 git fetch + git merge의 간략화된 명령어이다


그럼 git fetch는 무엇일까?


차이점은 merge(병합) 처리 여부이다.

pull은 원격 레포지토리로부터 최신 커밋을 내려받아서 현재 로컬 브랜치와 자동 병합을 한다.

반면 fetch는 원격 레포지토리에서 최신 커밋을 이름없는 임시 브렌치로 내려받는다 (병합을 진행x)


pull : 원격 레포지토리가 로컬 레포지토리에 비해 더 최신 커밋이 존재할 때만 내려받도록 한다.

fetch : 원격 레포지토리와 로컬 레포지토리의 변경 사항이 다를 때, 이를 비교 및 대조하는 확인 작업이 필요할 때 사용한다.

profile
베짱이는 개미가 밉다

0개의 댓글