“git rebase –continue”를 잊어 버리고 “git commit”을 수행했습니다. 어떻게 고치는 지? 리베이스하고 있었고 병합 충돌이 발생했습니다. 나는 갈등을

git에서 코드를 리베이스하고 있었고 병합 충돌이 발생했습니다. 나는 갈등을 해결하고 다음을 수행했습니다.

git add

이 시점에서 나는하는 것을 잊었다.

git rebase --continue

나는 코딩을 계속했고 다음과 같이했습니다.

git commit

변화를 위해. 이제 나는 켜져 "no branch"있고 할 수 없습니다.

git rebase --continue

이 문제를 어떻게 해결합니까?



답변

편집 : 그것이 당신에게 더 쉬운 해결책인지 확인하기 위해 아래 답변을보십시오. https://stackoverflow.com/a/12163247/493106


나는 그것을 시도해야하지만 이것이 내가 할 것이라고 생각합니다.

  1. 최신 커밋에 태그를 지정하거나 SHA1을 잃어 버리지 않도록 어딘가에 적어 둡니다. git tag temp
  2. git rebase --abort
  3. rebase를 다시 수행하십시오. 병합을 다시 해결해야합니다. 🙁
  4. git rebase --continue
  5. git cherry-pick temp

이 문제는 temp커밋에 병합의 해결 방법과 새 코드가 모두 포함되어 있다는 것입니다. 그래서 까다로울 수 있지만 시도해보고 작동하는지 확인합니다.


답변

그냥하세요 git reset --soft HEAD^. HEAD 포인터를 부모로 이동하지만 작업 트리를 유지하고 병합 변경 사항을 인덱스에 추가합니다. 따라서 git rebase --continue이전 과 같이 리베이스를 계속할 수 있습니다 .


답변

나는 같은 문제를 겪었고, 설상가상으로 3 개의 커밋을 리베이스하고 있었고, 두 번째 커밋에서 충돌을 해결 한 후 “rebase –continue”대신 “커밋”했습니다.

결과적으로 나는이 자식 reflog를 가졌습니다.

kirikaza의 솔루션을 적용 할 때 문제가되는 두 번째 커밋이 아닌 세 번째 커밋을 되돌 렸습니다.

보시다시피 rebase는 remotes / origin / master 브랜치의 체크 아웃으로 시작한 다음 reflog에서 이전 작업 (체크 아웃 전)으로 나타나는 세 개의 커밋을 적용합니다.

그런 다음 클린베이스에서 다시 시작하려면 rebase 전에 rebase 작업을 체크 아웃하기 직전에 해시로 하드 재설정하면됩니다. 제 경우에는 (그림 참조) :

git reset --hard 859ed3c

그런 다음 새 git rebase.


답변

나는 git rebased, 고정 충돌, git 추가 파일 충돌 및 (잘못) 커밋했습니다.

나는 시도 git reset --soft HEAD^git reset --hard솔루션을 제공하지만, 어느 쪽도 아니 나를 위해 일하지 않는다.

그러나 방금 git rebase --abort작동했습니다. 깨끗한 작업 트리로 리베이스를 시작하기 전에 저를 다시 데려갔습니다.