2014-07-12 2 views
0

우리의 자식과 함께 뭔가 잘못되었습니다. 우리 커밋 중 일부는 사라졌습니다. 물론 (물론) 우리는 그 위에 커밋했습니다. 누락 된 커밋을 우리 시스템의으로 다시 가져올 수 있었지만,이를 수행 할 때 은 최근의 커밋보다 많이 뒤졌습니다.더 오래된 커밋을 마치 새로운 커밋처럼 병합하십시오.

내 컴퓨터의 한 지점에 더 최근의 커밋이 있는데, 아직 커밋되지 않은 커밋이 누락되었습니다. 마치 새로운 커밋 인 것처럼 병합을 통해 누락 된 커밋을 다시 내 지점으로 가져오고 새로운 변경 사항을 원래대로 다시 커밋합니다. 당연히 내가 당길 때, git은 원래 로컬이 내 로컬 브랜치에 완전히 통합되었다고 생각합니다. 왜냐하면 내 로컬 브랜치가 완전히 손실 된 커밋을 복구하기 전에 통합 되었기 때문입니다.

이렇게 할 방법이 있습니까? 다른 대안?

나는 자식에 아주 새로운, 그래서 적절한 용어

+0

아마도이 문제를 해결할 수 있습니다. rebase와 reflog의 일부 조합. 그러나 더 많은 정보가 필요합니다. 'git log --graph --oneline --decorate '을 질문에 포함시킬 수 있습니까? 원하는 경우 민감한 커밋 메시지를 제거 할 수 있습니다. 또한 어떤 지사/커밋이 공개, 공유 된 Repo 및 어떤 지사에 공개되지 않았는지 명확히하십시오. 리베이스를 사용하면 동료가 문제를 해결할 수있는 기록을 다시 작성해야합니다. –

+0

당신이 제안한 바와 같이 rebasing을 시도했는데, 옵션일지도 몰랐다. 그러나 뭔가를 시도해봤을 때 파일이 엉망이되어서 모든 것을 끝내지 못했다. 체리 따기는 일하고 더 쉬웠다 –

답변

1

git cherry-pick 될 것이라고 여기에 사용하는 주요 명령의 부족을 용서.

하나의 (또는 여러 개의) 커밋을 선택하고 현재 분기에 적용 할 수 있습니다.

커밋 날짜가 변경됩니다.

두 저장소가 동일한 저장소에있는 경우 해당 명령을 직접 사용할 수 있습니다.

, 당신이 할 수없는 경우 :

  • 당신이 최근 원격으로 커밋이있는 REPO 추가 : 해당 원격의 repo에서

    git remote add newcommits /url/to/repo/with/more/recent/commits 
    
  • 체리 픽을

    git fetch newcommits 
    git cherry-pick <new commits SHA1> 
    git cherry-pick <new commits SHA1> 
    
+0

감사합니다, 잘 된. 체리 따기는 일반적으로 알기에 좋은 청초한 기능입니다! –

관련 문제