git에서 코드를 리베이스하고 있었고 병합 충돌이 발생했습니다. 나는 갈등을 해결하고 다음을 수행했습니다.
git add
이 시점에서 나는하는 것을 잊었다.
git rebase --continue
나는 코딩을 계속했고 다음과 같이했습니다.
git commit
변화를 위해. 이제 나는 켜져 "no branch"
있고 할 수 없습니다.
git rebase --continue
이 문제를 어떻게 해결합니까?
답변
편집 : 그것이 당신에게 더 쉬운 해결책인지 확인하기 위해 아래 답변을보십시오. https://stackoverflow.com/a/12163247/493106
나는 그것을 시도해야하지만 이것이 내가 할 것이라고 생각합니다.
- 최신 커밋에 태그를 지정하거나 SHA1을 잃어 버리지 않도록 어딘가에 적어 둡니다.
git tag temp
git rebase --abort
- rebase를 다시 수행하십시오. 병합을 다시 해결해야합니다. 🙁
git rebase --continue
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
작동했습니다. 깨끗한 작업 트리로 리베이스를 시작하기 전에 저를 다시 데려갔습니다.