Git에서 체리 선택 병합 커밋

Abdul Jabbar 2023년1월30일
  1. Git의 git cherry-pick 명령
  2. Git에서 체리 선택 병합 커밋
Git에서 체리 선택 병합 커밋

같은 팀의 여러 개발자가 프로젝트를 수행할 때 프로젝트의 복잡도가 크든 작든 상관없이 Git 브랜치 간의 변경 사항을 처리하고 관리하기가 매우 어려워집니다.

경우에 따라 전체 분기를 결합하는 대신 특정 커밋을 다른 분기로 결합해야 하는 경우가 있는데 이를 위해 체리 피킹(Cherry Picking)으로 널리 알려진 Git의 필수 도구를 사용합니다.

Cherry Picking은 저장소 브랜치의 전체 커밋 목록에서 하나의 커밋만 선택할 때 사용하기에 좋은 도구입니다.

Git의 git cherry-pick 명령

git cherry-pick은 임의의 Git 커밋을 저장소의 한 분기에서 이동하고 저장소의 현재 작동 중인 HEAD에 추가하는 영향력 있는 명령입니다. 이 명령은 팀에서 수행한 과거 개발과 관련된 변경 사항을 취소하는 데에도 유용합니다.

예를 들어 실수로 잘못된 브랜치에 커밋을 한 경우 올바른 브랜치로 이동하고 저장소의 새 브랜치에 속해야 하는 올바른 위치로 커밋을 선택합니다.

git merge 또는 git rebase로 작업할 때 분기의 모든 커밋이 혼합됩니다. cherry-pick 명령을 사용하면 동화를 위해 선택한 커밋을 선택할 수 있습니다.

Git에서 체리 선택 병합 커밋

병합 커밋을 선택하는 것은 보기보다 쉽지 않습니다. 병합 절차를 실행할 때 동일한 저장소에서 한 번에 두 개의 분기로 작업합니다.

예를 들어, parent-B 분기는 Git 명령을 사용하여 parent-A 분기로 병합됩니다.

따라서 두 부모와 병합된 특정 커밋을 체리피킹할 때 -m 옵션을 사용하여 diff를 사용해야 하는 커밋을 cherry-pick 명령에 알려야 합니다. 다음 명령에서 commit hash를 사용하여 특정 상위 분기를 언급할 것입니다.

위의 상황에 대한 구문은 다음과 같이 설명됩니다.

git cherry-pick -m <commit hash>

위 명령어의 다음 예를 들어 상황을 설명해보자.

M - N - O - P - Q (branch A)
     \     /
      R - S - T (branch B)

위와 같이 P는 병합 커밋입니다. git cherry-pick 명령을 실행하면 Git은 명령에 대한 경고를 전달합니다.

이제 커밋 ID와 함께 상위 브랜치 번호를 언급해야 합니다. 다음 명령으로 수행됩니다.

git cherry-pick -m 1 P

cherry-pick 명령은 위의 예에서 O- P의 모든 커밋을 가져옵니다.

아래 명령을 사용하여 위의 작업을 수행할 수도 있습니다.

git cherry-pick -m 2 P

위의 예에서 R- S- P의 모든 커밋을 선택합니다.

참고: merge commit 명령으로 분기에서 커밋을 선택하는 것은 너무 해로우므로 작업하는 동안 항상 주의하여 진행하십시오. 과거에 수행한 커밋 이력을 잃을 위험이 높습니다.

그것은 우리가 부모에서 만든 모든 변경 사항을 방해하고 하나의 커밋에 -m을 정의하지 않았습니다.

작가: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

관련 문장 - Git Cherry-Pick