찾다

 >  Q&A  >  본문

git 체리픽 문제가 있나요?

새 웨어하우스를 만들고 텍스트 파일 하나만 넣고 각각 6개의 커밋을 수행합니다. 이때 git log --oneline은 다음과 같습니다

파일 내용은 다음과 같습니다

442452d 커밋을 삭제하고 e09949e 커밋을 유지하고 싶습니다. 방법은 다음과 같습니다.
git Reset --hard 260effc
그런 다음 git Cherry-pick e09949e

이때 아래와 같이 갈등이 발생했습니다

이해할 수 없는 것은 논리적으로 말하면 직접 패치해야 한다는 것입니다. e09949e의 제출물에는 '3'이 아닌 '4'만 포함되어야 합니다. 여전히 필요합니다. '3'을 수동으로 제거하면 체리픽이 무슨 소용이 있나요? 그냥 파일에 들어가서 삭제해도 되나요? 아니면 사용법에 문제가 있는 걸까요? 하나님께 인도를 구하십시오! ! !

世界只因有你世界只因有你2794일 전697

모든 응답(2)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-05-02 09:34:56

    그냥 git revert 442452d를 실행하면 안 되나요?

    커밋은 상대적인 수정 사항을 기록하며 수정된 내용의 위쪽 및 아래쪽 줄과 관련됩니다. 이전 줄이 손실되면 충돌이 보고되며 수동으로 해결해야 합니다. 두 커밋이 더 이상 관련 기능에 있지 않으면 직접 되돌릴 수 있습니다.

    또한 이러한 Reset --hard 방식과 Cherry-Pick 방법을 사용하는 것은 그리 좋지 않습니다. 다른 공동 작업자가 중간에 다른 커밋을 추가하여 후속 충돌 처리가 더 어려워질 수 있습니다.

    cherry-pick의 더 나은 사용 시나리오는 한 지점에서 다른 지점의 별도 기능을 원하는 경우입니다.

    회신하다
    0
  • 漂亮男人

    漂亮男人2017-05-02 09:34:56

    e09949e에는 4만 포함되어 있는데, 이는 이전 커밋442452d과의 차이점입니다.

    그러나 이제 442452d을 제거하고 e09949e의 상위 노드를 442452d에서 260effc으로 가리키려고 합니다. 실제로 충돌이 발생합니다.

    움직이는 사진 없이 설명이 이해가 되었는지 잘 모르겠습니다. 궁금한 점이 있으면 먼저 이 튜토리얼을 플레이해 보시기 바랍니다.

    회신하다
    0
  • 취소회신하다