Git에서 커밋 체리 선택

Abdul Jabbar 2023년1월30일
  1. Git cherry-pick은 언제 사용합니까?
  2. Git cherry-pick 명령
  3. Git에서 삭제된 커밋 복원 및 변경 사항 실행 취소
Git에서 커밋 체리 선택

‘cherry-pick’은 Git을 사용하는 동안 다양한 시나리오에서 놀랍고 매우 유용한 매우 유용한 명령입니다. Git에서 cherry-pick 명령을 사용하면 한 분기에서 현재 HEAD 분기로 정렬 및 분리된 커밋을 결합할 수 있습니다.

특정 브랜치에서 커밋을 선택하여 다른 브랜치로 옮기는 것으로 설명할 수 있습니다. 이 명령은 해당 분기의 변경 사항을 취소하는 데 유용할 수 있습니다. 예를 들어 커밋이 실수로 원하지 않는 분기로 푸시된 경우입니다. 원하는 브랜치로 전환하고 실수로 원하는 브랜치가 있어야 하는 위치에 커밋하는 체리픽을 선택할 수 있습니다.

Git cherry-pick은 언제 사용합니까?

Git cherry-pick은 강력한 도구이지만 항상 최선의 선택은 아닙니다. 이 명령을 사용하여 커밋을 HEAD 분기에 결합할 때 중복 커밋을 쉽게 만들기 때문에 일반적이지 않은 cherry-pick를 적용해야 합니다.

Git은 마지막 커밋과 동일한 요구 사항으로 새 커밋을 만드는 역할을 합니다. Git cherry-pick은 실수로 잘못된 분기에 새 변경 사항을 커밋하고 원격 저장소로 푸시한 시나리오에서 사용해야 합니다.

원격 리포지토리로 푸시한 후 푸시된 커밋이 특정 분기를 푸시할 필요가 없다는 것을 깨달았습니다. 따라서 Git cherry-pick 명령을 사용하여 고유한 ID로 해당 커밋을 선택하고 올바른 위치로 전송해야 합니다. 나뭇가지.

결합을 위해 전통적인 Merge 또는 Rebase를 적용할 기회가 있을 때마다 cherry-pick는 병합 또는 rebase가 적용되지 않는 드문 경우를 위해 예약되어야 하기 때문에 cherry-picking을 고려해야 합니다.

Git cherry-pick 명령

잘못된 브랜치에서 수행한 커밋에서 현재 HEAD 브랜치로 결합하려는 커밋만 지정하면 됩니다. et12x8iu는 현재 브랜치에서 이를 결합하기 위해 지정해야 하는 커밋 ID입니다.

다음은 잘못된 커밋을 새로운 최신 커밋으로 전송하는 명령입니다.

$ git cherry-pick et12x8iu 

이런 식으로 현재 체크아웃된 브랜치에 지정된 수정본을 직접 커밋합니다.

작업에 약간의 수정이 더 필요하다고 가정해 보겠습니다. 이 경우 Git 명령을 사용하여 직접 커밋하지 않고 기본 작업 복사본에 대한 커밋 변경 사항만 포함할 수도 있습니다. 이렇게 하면 수정된 작업 복사본에 직접 들어가고 요구 사항에 따라 파일을 수정할 수 있습니다.

다음은 작업 디렉토리에 잘못된 커밋을 가져오는 명령입니다.

$ git cherry-pick et12x8iu --no-commit

Git에서 삭제된 커밋 복원 및 변경 사항 실행 취소

때로는 기능 분기에 약간의 복잡성이 있어 현재 분기로 결합되지 않으며 때로는 다른 작업 요구 사항으로 인해 병합하지 않고 풀 요청이 중지될 수 있습니다.

Git의 특별한 기능은 커밋을 절대 추적하지 않는다는 것입니다. 그리고 git loggit reflog와 같은 일부 명령을 통해 커밋을 다시 추적하고 처음에 있어야 했던 위치로 cherry-pick할 수 있습니다. 장소.

git merge 또는 git-rebase 대신 cherry-pick 옵션을 사용해서는 안 된다고 말할 수 있습니다. git log 명령을 적용하여 특정 분기에서 체리 선택 커밋을 정렬할 수 있습니다.

작가: 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 Commit