이 기사는 "Advanced Git"시리즈를 계속합니다. 트위터에서 우리를 팔로우하거나 향후 기사에 대한 업데이트를 위해 뉴스 레터를 구독하십시오!
이전 설치에서 우리는 Rebasing과 병합을 탐색했습니다. 미묘하게 다르지만 git merge
과 git rebase
동일한 기본 목적을 수행합니다. 한 분기에서 다른 분기로 변경을 통합합니다.
이 기사는 git cherry-pick
에 중점을 둡니다. Git Cherry-Pick에 중점을 둡니다. 강력한 명령 인 강력한 명령에 중점을 둡니다. 이는 소스 분기의 모든 새로운 커밋을 통합 한 git merge
및 git rebase
와 급격히 대비됩니다.
왜 단일 커밋을 선택적으로 적용합니까? 주요 사용 사례는 오류를 수정하는 것입니다. 실수로 잘못된 지점에 전념한다고 상상해보십시오. cherry-pick
수정 사항을 단순화합니다. 올바른 지점으로 전환하고 cherry-pick을 잘못 커밋합니다.
주의 한 말 : cherry-pick
에 대한 과도한 관계를 피하십시오. git merge
및 git rebase
촉진하는 지점 수준의 워크 플로가 일반적으로 선호됩니다. cherry-pick
표준 병합 또는 재생을 대체 하지 않고 특정 상황에 유용한 도구입니다.
이 시나리오를 고려하십시오. feature/newsletter
브랜치를 실수로 master
에 착륙시키기위한 커밋. 다음 타워 스크린 샷 (MacOS 및 Windows 용 Git Gui) 26bf1b48
master
보여줍니다.이를 보여줍니다.
또는 명령 줄은 다음을 나타냅니다.
$ git 로그 Commit 26BF1B4808BA9783E4FABB19EC81E7A4C8160194 (Head-> Master) 저자 : Tobias Günther 날짜 : 금요일 10 월 5 일 09:58:03 2018 0200 뉴스 레터 가입 페이지
Commit 26bf1b48
은 feature/newsletter
에 속합니다. cherry-pick
사용하여 이동합시다.
$ git 체크 아웃 기능/뉴스 레터 지점 '기능/뉴스 레터'로 전환 $ git 상태 지점 기능/뉴스 레터에서 커밋 할 것이 없습니다 $ git cherry-pick 26BF1B48 [기능/뉴스 레터 7FB55D0] 뉴스 레터 가입 페이지 저자 : Tobias Günther 날짜 : 금요일 10 월 5 일 09:58:03 2018 0200 1 파일 변경, 0 삽입 (), 0 삭제 (-) Mode 100644 Signup.html을 작성하십시오
git log
이제 feature/newsletter
의 커밋을 보여줍니다.
$ git 로그 Commit 7FB55D06A8E70FDCE46921A8A3D3A9DE7F7FB8D7 (HEAD -> 기능/뉴스 레터) 저자 : Tobias Günther 날짜 : 금요일 10 월 5 일 09:58:03 2018 0200 뉴스 레터 가입 페이지
참고 : cherry-pick
커밋 사본을 생성하여 원본을 그대로 유지합니다.
"잘못된"커밋은 master
에 남아 있습니다. git reset
제거합니다.
$ git 체크 아웃 마스터 Branch 'Master'로 전환 $ git Reset -하드 헤드 ~ 1 헤드는 이제 제목 및 삭제 오류 페이지에 대한 776f8ca에 있습니다.
Tower Gui는이 전체 프로세스를 시각화합니다.
가능할 때마다 merge
또는 rebase
우선시하십시오. 부적합한 상황, 특히 개별 커밋을 이사하기 위해 cherry-pick
예약하십시오. git cherry-pick
복제는 커밋을 기억하십시오. 나중에 항상 정리하십시오.
분기 전략, 대화식 레바 제, 리플 로그 및 하위 모듈을 포함하여 GIT 도구로 깊은 다이빙을위한 무료 "고급 git 키트"를 탐색하십시오.
행복한 체리 피킹, 다음 "고급 git"할부에서 뵙겠습니다!
위 내용은 체리 따기는 git에서 커밋됩니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!