Git Cherrypick 사용법

Git Cherrypick 사용법

Git Chrrey Pick

다른 브랜치에 반영한 변경 사항을 현재 브랜치로 가지고 오는 것을 '체리 픽'이라고 합니다.

현재 A라는 기능을 branch-A라는 브랜치를 따서 작업 중 입니다. 이때 갑자기 버그 픽스를 해야 하는 태스크가 들어왔을 때 A라는 기능은 branch-A에 커밋한 후 main브랜치로 전환해서 작업중인 내용은 포함이 안되지만 버그 픽스한 수정사항만 반영 하기 위해 사용할 수 있습니다.

git으로도 충분히 모든 과정을 진행 할 수 있지만 파일 목록들과 변경사항을 확인하면서 Chrrey Pick을 하려면 GUI툴이 있는 것이 도움이 됩니다. 여기에서는 Sublime Merge를 사용합니다. 구매하지 않고도 날짜 제한 없이 모든 기능을 사용해볼 수 있습니다. 

Sublime Merge는 다음 링크를 통해 받을 수 있습니다.

Sublime Merge - Git client from the makers of Sublime Text

소스트리는 체리픽 기능이 있지만 파일 단위로는 되지 않고 브랜치 단위로만 되어서 조금 불편합니다.

과정

 

1.지금까지 작업내역 commit하기

a라는 기능을 작업하던 도중 작업이 끝나지 않은 상황에서 수정사항 b가 들어왔습니다. 먼저 commit을 해야 합니다.

다음은 Sublime Merge의 화면입니다. 왼쪽 브랜치 목록에서 NEO-2397-company-id-auto-insert 라는 브랜치에 지금까지 했던 작업 내용을 commit 합니다. 

commit한 브랜치

2.수정사항에 대한 브랜치 생성

main브랜치로 돌아와 branch-B를 딴 후 수정사항에 대한 작업을 합니다.

 

3.commit뒤에 main브랜치

작업이 끝나면 branch-B에 commit후 main브랜치에 머지 합니다. 머지를 했기 때문에 수정사항이 main브랜치에 반영이 되었고 앞에서 a기능을 작업하던 브랜치는 수정사항 앞에 있습니다.

여기에서 chrrey pic을 해서 main에 머지되지 않은 브랜치에 있는 수정사항을 현재 브랜치로 불러 올 수 있습니다.

다음은 앞에서 commit한 브랜치에서 UserServiceImpl.java에 수정한 내용을 Chrrey Pick하는 과정입니다.

main branch에서 NEO-2397-company-id-auto-insert 브랜치를 선택 합니다. 그러면 오른쪽에 브랜치 NEO-2397~의 변경 내역이 나옵니다.

체리픽 하고 싶은 파일명에 마우스 오른쪽 클릭을 한 후 Cherry Pick File을 선택 합니다.

 

4.체리픽된 변경사항 확인

main브랜치에 앞에서 Chrrey Pick한 변경사항이 들어와 있는 것을 볼 수 있습니다. 이제 작업을 이어나가면 됩니다.

Read more

[시리즈 2편] 실무로 배우는 메시지 큐 - RabbitMQ

[시리즈 2편] 실무로 배우는 메시지 큐 - RabbitMQ

들어가며 [시리즈1]에서는 프로세스 내부 메시지 큐를 다뤘습니다. 이번엔 네트워크 메시지 큐인 RabbitMQ를 다룹니다. RabbitMQ 공식 문서나 기술 블로그는 많지만, 실무에서 어떻게 사용하는지에 대한 글은 의외로 적습니다. "Producer가 뭐고 Consumer가 뭔지는 알겠는데, 그래서 실제로는 어떻게 쓰는데?" 이번 글에서는 우리 MES 시스템에서 RabbitMQ를 어떻게 활용하고 있는지 실제 코드와 함께 공유합니다. 우리

By Jeonggil
[시리즈 1편] 실무로 배우는 메시지 큐 - Windows Message Loop

[시리즈 1편] 실무로 배우는 메시지 큐 - Windows Message Loop

들어가며 이 글은 "실무로 배우는 메시지 큐" 시리즈의 첫 번째 글입니다. 실무에서 발견한 문제를 해결하는 과정에서, IME 입력 문제와 해결 과정을 공유합니다. 메시지 큐는 RabbitMQ, Kafka 같은 네트워크 레벨만 있는 게 아닙니다. 우리가 매일 쓰는 Windows 애플리케이션도 메시지 큐 기반으로 동작합니다. * 시리즈1 (이 글): 프로세스 내부의 메시지 큐 - Windows

By Jeonggil
[시리즈 2편] 그림으로 풀어낸 SaaS 알림 시스템

[시리즈 2편] 그림으로 풀어낸 SaaS 알림 시스템

이 글은 1편 - 그림으로 풀어낸 SaaS 알림 시스템의 후속편입니다. 들어가며 1편에서는 설비 연속 OFF 알림 기능의 핵심 로직과 어떤식으로 해결했는지 그림으로 알아봤습니다. 이번 글에서는 실무에서 마주한 진짜 고민들을 공유합니다: * 왜 3개의 새로운 테이블이 필요했나? * 어떻게 확장 가능한 구조를 만들었나? * SMS 14원짜리 알림이 왜 무서운가? * 운영 레벨로 나가기까지 무엇을 준비했나?

By Jeonggil
[시리즈 1편] 그림으로 풀어낸 SaaS 알림 시스템

[시리즈 1편] 그림으로 풀어낸 SaaS 알림 시스템

들어가며 제조업 IoT 플랫폼에서 N대 이상의 설비를 실시간으로 모니터링하고, 설비가 연속으로 꺼졌을 때 담당자에게 즉시 알림을 보내는 기능을 개발하게 되었습니다. 데이터는 실시간으로 쌓이지만, 설비이상을 체크하는 스케줄러 주기는 1분으로 설정하였습니다. 시스템 아키텍처 기존 인프라와 Push 기능은 이미 구축되어 있었습니다. 저는 중간에 들어가는 Alert Scheduler만 구현하면 되는 상황이었습니다. ┌──────────────────────────────────────────────────────────┐ │ 설비 IoT 센서 (실시간)

By Jeonggil