git rebase/pull/fetch

리안·2023년 3월 4일
0

1.pull

pull은 fetch + merge를 동시에 실행하는 강력한 명령어이다. 내 로컬 저장소에 원격저장소의 내용을 가져오는 동시에 자동으로 병합 작업을 실행하게 된다.

2.fetch

만약 원격 저장소의 내용은 확인만 하고 병합은 진행하기 싫다면 fetch를 쓰면 된다. fetch를 실행하면 저장소의 최신 커밋 내용을 확인 가능한데, 이때 커밋 이력은 이름없는 브랜치(FETCH_HEAD)로 가져오게 된다.
요약하자면 fetch는 별개의 브랜치를 만들어 최신 내용을 내 로컬로 가져오는 것이다. 그러니 내 작업저장소의 내용은 전혀 수정하지 않는다.
물론, 이 최신 내용을 통합하고 싶다면 merge도 가능하다.

fetch하고 통합 전

fetch하고 통합 후

3. rebase

rebase는 커밋 기록을 만들지 않고 분기를 깔끔하게 만들기 위해 쓴다. 브랜치를 분기하고 병합하면 브랜치 히스토리가 복잡해질 수 있다.
예를 들어 메인 브랜치의 최신 내용을 업데이트하고 싶은데 브랜치를 더 생성하지 않고 싶다면, 이 rebase를 다음과 같이 쓰면 된다.

git pull --rebase


rebase를 쓰지 않고 일반적으로 브랜치를 만들었을 떄

rebase를 썼을 때

위에서 보듯이, rebase를 쓰면 branch가 분기 되지 않고 그전 내용을 업데이트하며 깔끔한 히스토리를 유지할 수 있다.

참고 사이트

https://backlog.com/git-tutorial/kr/stepup/stepup3_2.html

profile
좋은 개발자가 되기 위한 한 걸음

0개의 댓글