Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

Git Cherry Pick:단계별 가이드

초보 개발자로서 우리는 단순히 반복을 통해 git을 배웁니다. 우리는 git pull, git push, git commit 각각이 의미하는 바를 빠르게 배웁니다. 더 큰 프로젝트에서 작업하고 팀과 협업하기 위해 전환하면서 프로젝트에서 작업하는 개인 간에 코드베이스의 버전 제어 기록을 바로 유지하는 데 도움이 되는 고급 git 명령을 배우기 시작합니다.

그러한 명령 중 하나는 git cherry-pick 입니다. git cherry-pick 명령은 한 브랜치에서 특정 커밋을 가져와 다른 기능 브랜치나 마스터 브랜치의 HEAD에 첨부하려는 경우에 사용됩니다.

git cherry-pick이란 무엇입니까?

체리 따기를 그룹 프로젝트에서 작업하는 것으로 생각하십시오. 사람마다 작업해야 하는 특정 섹션이 있습니다. 결국 그들은 각 섹션을 하나의 전체 프로젝트로 결합할 것입니다. 프로젝트가 더 잘 진행되도록 특정 섹션의 일부를 다른 섹션의 파트에 접합할 수 있습니다.

이것은 본질적으로 git cherry-pick입니다. 한 기능 브랜치에서 커밋 또는 여러 커밋을 가져와 다른 브랜치에 새 커밋으로 첨부합니다. 작동 방식을 살펴보겠습니다.

Git Cherry Pick:단계별 가이드

이 기본 다이어그램은 git에서 추적하는 프로젝트의 두 분기를 나타냅니다. 문자는 해당 분기의 git 리포지토리에 대한 서로 다른 커밋을 나타냅니다. 대시는 가장 오래된 것부터 가장 어린 것까지의 역사를 나타냅니다. 다음 단계를 수행할 때 두 분기의 구조와 작동 방식을 상상해 보십시오.

git cherry-pick 완료 단계

각 git 커밋 또는 편지(위 그림 참조)를 체리로 생각하십시오. 각 체리에는 고유한 해시가 연결되어 있습니다. 해시가 무엇인지 확실하지 않은 경우 커밋과 연결된 지문 또는 고유 식별자로 생각하십시오. 해당 체리를 선택하고 다른 분기에 추가하려면 해당 해시가 필요합니다.

  1. git checkout <name of branch you’d like to grab commit from>
    커밋/체리를 선택하려는 지점으로 체크아웃하십시오.
  2. git reflog
    git 참조 로그, reflog , 최근 작업을 추적합니다. 다음은 git reflog의 예입니다.
    % git reflog
    bf654bb (HEAD -> master, origin/master) HEAD@{0}: commit: last commit message made
    2394353 HEAD@{1}: commit: where head was 2 commit messages ago
    b4b51eb HEAD@{2}: commit: where head was 3 commit messages ago


    대규모 팀과 함께 작업하는 경우 커밋 참조 로그에 날짜, 시간 및/또는 커밋한 작성자와 같은 추가 정보가 있을 수 있습니다. 그러나 여기에서 커밋 해시, 커밋이 수행된 분기, 수행된 작업 및 실제 커밋 메시지를 볼 수 있습니다.

    다른 브랜치에 추가하고 싶은 커밋을 알게 되면 해시를 기록해 두십시오. 해시는 이 예에서 각 라인의 시작 부분에 있는 숫자와 문자의 문자열입니다.
  3. git checkout <커밋을 추가하려는 브랜치 이름>
    해시를 기록한 후 커밋을 추가하려는 분기로 전환합니다.
  4. git cherry-pick [-x] <해시 커밋>
    커밋 해시와 함께 git cherry-pick 명령을 사용하여 해당 분기의 작업 트리에 커밋을 추가합니다. 공개 브랜치에서 체리 피킹할 때 -x 플래그를 사용하세요. 이렇게 하면 체리 피킹된 원래 커밋을 나타내는 줄이 추가됩니다.
    체리 픽 후 다이어그램을 다시 살펴보겠습니다.

체리 픽 후 다이어그램을 다시 살펴보겠습니다.

Git Cherry Pick:단계별 가이드

이 예에서 선택한 "체리" 또는 커밋 해시는 "C"입니다. 위에서 설명한 단계를 수행한 후 선택한 커밋(이 경우 "C")이 두 번째 분기의 기록에 커밋으로 추가됩니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

최종 노트

마지막으로 할 일은 체리가 고른 커밋에서 메모를 복사하는 것입니다. git notes copy <cherry-picked commit hash> <new-commit-hash> 사용 원래 커밋에서 작성된 모든 메모를 복사합니다.

또한 결과적으로 발생할 수 있는 병합 충돌을 해결해야 합니다.
이 기사에서는 git cherry-pick이라는 고급 git 명령을 사용하는 데 필요한 프로세스를 살펴보았습니다. 한 브랜치에서 커밋을 가져와 다른 브랜치에 추가해야 할 때 사용하세요.