gyue 님의 블로그
[Learn Git Branching] 코드 이리저리 옮기기 본문
개요
이번 단계에서는 Git에서 커밋을 단순히 쌓는 것을 넘어,
원하는 커밋을 다른 위치로 옮기는 방법에 대해 학습해보았다.
이전까지는 commit, branch, checkout 등을 통해
Git의 기본적인 구조와 흐름을 이해하는 데 집중했다면, 이번 단계에서는 그 구조 위에서
“특정 작업만 선택해서 이동시키는 방법”을 익히는 과정이었다.
특히 cherry-pick과 interactive rebase를 통해
원하는 커밋만 골라서 가져오거나, 커밋의 순서를 재구성하는 방법을 직접 확인할 수 있었다.
이를 통해 Git이 단순히 기록을 쌓는 도구가 아니라
작업 흐름을 유연하게 조작할 수 있는 강력한 도구라는 것을 느낄 수 있었다.
Cherry-pick (체리픽)
개념
git cherry-pick은
특정 커밋 하나(또는 여러 개)를 선택해서 현재 브랜치로 가져오는 명령어이다.
즉, 브랜치 전체를 합치는 것이 아니라 “딱 필요한 커밋만 복사해서 가져오는 방식”이다.
git cherry-pick <commit1> <commit2>
동작 방식
- 선택한 커밋을 그대로 가져오는 것이 아니라 새로운 커밋으로 복사된다.
- 기존 브랜치 구조는 유지된다.
- 필요한 작업만 정확하게 가져올 수 있다.
특징
- merge처럼 전체를 합치지 않는다.
- rebase처럼 구조를 바꾸지 않는다.
- “선택적 이동”에 최적화된 명령어이다.
사용 상황
- 다른 브랜치에서 특정 기능만 가져오고 싶을 때
- 버그 수정 커밋만 따로 적용하고 싶을 때
- 전체 merge 없이 필요한 작업만 반영할 때







Interactive Rebase (인터랙티브 리베이스)
개념
git rebase -i는
여러 커밋을 원하는 방식으로 정리할 수 있는 명령어이다.
최근 n개의 커밋을 대상으로 작업 가능
주요 기능
인터랙티브 리베이스에서는 다음 작업이 가능하다.
1. 커밋 순서 변경
- 커밋의 순서를 자유롭게 재배열 가능
2. 커밋 선택/제거
- 필요 없는 커밋 삭제 가능
3. 커밋 합치기 (squash)
- 여러 커밋을 하나로 합칠 수 있다.
특징
- 커밋 히스토리를 깔끔하게 정리 가능
- 작업 흐름을 논리적으로 재구성 가능
- 협업 전에 히스토리를 정리할 때 매우 유용







Cherry-pick vs Rebase 차이
| 목적 | 특정 커밋 선택 | 전체 흐름 재정렬 |
| 범위 | 개별 커밋 | 여러 커밋 |
| 구조 변화 | 없음 | 있음 |
| 사용 방식 | 필요한 것만 가져오기 | 히스토리 정리 |
정리하면
- cherry-pick → “이 커밋만 가져올래”
- rebase → “전체 흐름을 다시 정리할래”
이번 단계에서 느낀 점
이번 학습을 통해 Git은 단순히 기록을 쌓는 도구가 아니라
작업을 원하는 방식으로 재구성할 수 있는 도구라는 것을 느꼈다.
특히 다음과 같은 점이 인상적이었다.
- Git은 커밋을 자유롭게 이동시킬 수 있다
- cherry-pick은 필요한 작업만 가져오는 데 매우 직관적이다
- rebase는 히스토리를 깔끔하게 정리하는 데 강력하다
처음에는 rebase가 어렵게 느껴졌지만,
“커밋을 다시 쌓는다”는 개념으로 이해하니 전체 흐름이 훨씬 명확하게 보이기 시작했다.
정리
이번 단계에서 학습한 핵심은 다음과 같다.
- cherry-pick은 특정 커밋을 선택해서 가져오는 명령어이다.
- rebase -i는 커밋 순서 변경, 삭제, 합치기가 가능하다.
- Git은 작업 흐름을 자유롭게 재구성할 수 있다.
- 커밋은 고정된 것이 아니라 이동 가능한 구조이다.
결국 Git의 핵심은
“필요한 작업을 원하는 위치에 배치하는 능력”이라는 것을 이해하게 되었다.
'블로그 & 기술문서' 카테고리의 다른 글
| [Learn Git Branching] 고급 문제 (0) | 2026.04.04 |
|---|---|
| [Learn Git Branching] 종합 선물세트 (0) | 2026.04.04 |
| [Learn Git Branching] 다음 단계로 (0) | 2026.04.04 |
| [Learn Git Branching] git 기본 (0) | 2026.04.04 |
| Nuclei를 활용한 취약점 점검 자동화 (0) | 2026.03.31 |