2013-05-02 5 views
2

저는 로컬 지형지 물에 있었고 마스터로 병합하려고했습니다. 나는 주인을 체크 아웃했는데, git pull --rebase 한 충돌이 있었지만 그것을 해결했지만, 그 후에는 git rebase --continue을 잊어 버렸다. 그런 다음 git merge my_other_branch을 작성한 다음 원점으로 밀어 넣으려고했지만 git이 어떤 지점에 대해서도 말하지 않았으므로 "oh no, i fogot rebase --continue"과 같았습니다. 그래서 나는 그것을 수행했고 git은 "변경하지 않았습니다 - 잊었습니까? git add를 사용 하시겠습니까? ". 그래서 지금 나는 어떤 지부에 있지 않다. 어떤 분리 된 머리 상태에있다.git rebase를 잊어 버렸습니다. --continue

궤도에 다시 돌아서려면 어떻게해야합니까?

답변

2
git rebase --skip 

리베이스를 계속해야합니다.

+3

또는 'git rebase --abort'를 수행하고 다시 할 수 있습니다. – yasouser

+0

@yasouser 그래, 그게 가장 좋은 코스일지도 몰라. 그러나 나는 그것이 합병을 버릴 것이라고 믿습니다. –

+0

예, 병합을 버립니다. 이전의 좋은 상태의 레포에서 신선한 것을 시작하는 또 다른 옵션으로 제안했습니다. – yasouser

1

Klas의 대답은 아마도 더 유용 할 수 있지만 일반적으로 "분리 된 헤드"는 찾고있는 곳이 지점이 아니라는 것을 의미합니다.

따라서 지점을 체크 아웃하여이를 해결할 수 있습니다 (특히, 원하는 지점).

이와 같은 일이 다시 발생하면 gitk --all으로 현재 상태를보고 저장소 구조 및 사용자 위치에 대한 아이디어를 얻으십시오.

0

지금은 내부적으로 rebase을 엉망으로 만들기 때문에 어려운 질문입니다. 이 단계를 권하고 싶습니다.

  • 현재 구조를 보려면 gitk --all을 시작하십시오. 특히 현재 HEAD와 이전 분기 헤드를 볼 수 있어야합니다. HEAD에 대한 커밋을보고 그 중 어떤 것이 유용한 지 확인하십시오. 나중에 필요하다고 생각되면 현재 HEAD에 임시 분기를 만듭니다. 현재 상태를 먼저 확정하십시오. git commit -am "dirty"
  • 실행 git rebase --abort -이 리베이스를 엉망으로 만들었습니다. 나는 리베이스 스크립트가 당신을 거기에서 빠져 나올 수 없을 것이라고 생각합니다.
  • 이제는 이전 브랜치 헤드로 돌아 가야합니다.
  • git rebase --ontogit cherry-pick을 사용하여 되돌리려는 모든 커밋을 되돌려 놓습니다. git reset, git commit --ammendgit rebase으로 수정하십시오. 예를 들어
    • : 지사에 포함 된 A--B--C를 범하고 성공적으로 A'B'AB을 리베이스하는 경우 (gitk이 체크), 당신은 rebase --onto B' B이 있었다.
관련 문제