체리 픽을 수행하는 데 문제가 있습니다. 내 로컬 컴퓨터에서 현재 "마스터"지점에 있습니다. "zebra"라는 다른 지점에서 커밋을 선택하고 싶습니다. "제브라"분기는 원격 분기입니다.
따라서 자식 상태 :
# On branch master
nothing to commit (working directory clean)
좋아, 이제 내가 원하는 커밋을 선택하려고합니다.
git cherry-pick xyz
fatal: bad object xyz
여기서 "xyz"는 지사 "zebra"에서 발생한 커밋의 서명입니다.
첫 번째 명백한 질문은 왜 내가 참조하고있는 커밋을 찾을 수 없습니까? 나는 이것이 어떻게 정직하게 작동하는지 이해하지 못한다. git은 다른 모든 브랜치에 대해 작업 디렉토리에 로컬로 커밋 데이터베이스와 같은 것을 저장합니까? cherry-pick 명령을 실행할 때 로컬 데이터베이스를 검색하여 내가 말하고있는 커밋을 찾습니까?
"얼룩말"은 원격 지점이므로 로컬에 데이터가 없다고 생각했습니다. 그래서 지점을 바꿨습니다.
git checkout zebra
Switched to branch 'zebra'
이제 로컬 컴퓨터에서 디렉토리의 파일이 얼룩말의 상태를 올바르게 반영 함을 알 수 있습니다. 다시 마스터로 전환하고 체리 피킹을 다시 시도하십시오 (커밋 데이터를 사용할 수 있음).하지만 같은 문제가 발생합니다.
나는 여기에서 무슨 일이 일어나고 있는지에 대한 근본적인 오해를 가지고 있습니다. 어떤 도움이라도 좋을 것입니다.