git rebase fatal : 단일 개정이 필요했습니다 있고 원래 저장소의 현재 커밋으로

공용 저장소의 분기가 있고 원래 저장소의 현재 커밋으로 분기를 업데이트하려고합니다.

$ git fetch <remote>
remote: Counting objects: 24, done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 20 (delta 12), reused 0 (delta 0)
Unpacking objects: 100% (20/20), done.
From git://github.com/path_to/repo
  9b70165..22127d0  master     -> $/master
$ git rebase <remote>
fatal: Needed a single revision
invalid upstream <remote>

<remote>내 원격 이름 대신에 실제로 내 원격 이름이 아닙니다. 이 오류에 대한 문서는 약간 느슨한 것 같습니다.



답변

리모컨의 이름이 아닌 지점 이름 (또는 다른 커밋 식별자)을 제공해야합니다 git rebase.

예 :

git rebase origin/master

아니:

git rebase origin

커밋 참조가 필요한 인수로 사용될 때 origin심판으로 해결해야 하지만 origin/HEAD모든 리포지토리가 그러한 참조를 얻지는 못하므로 작동하지 않을 수 있습니다 (귀하의 경우). 명시 적으로 지불합니다.


답변

지점 이름의 철자를 확인하십시오 . 나는 스토리 브랜치를 rebasing하고 (즉 branch_name) 스토리 부분을 잊어 버렸습니다. (즉 story/branch_name) 그런 다음 git 은이 맥락에서별로 의미가없는이 오류를 나에게 뱉었습니다.


답변

나는 이것에 부딪 쳤고 리베이스하기 전에 업스트림을 가져 오지 않았다는 것을 깨달았다. 내가 필요한 건git fetch upstream


답변

문제는 리베이스하려는 지점에서 지점을 벗어났다는 것입니다. 현재 지점이 처음 작성된 커밋이 포함되지 않은 지점으로 리베이스 할 수 없습니다.

로컬 분기 X를 푸시 한 Y로 리베이스 한 다음 분기 (X에서 처음 생성)를 푸시 한 Y로 리베이스하려고 시도했을 때 이것을 얻었습니다.

X로 rebasing하여 나를 위해 해결되었습니다.

현재 지점이 해당 지점의 조상에서 유래하는 경우 원격 지점 (잠재적으로 체크 아웃되지 않음)을 기반으로하는 데 아무런 문제가 없습니다.


답변

원격 origin:

$ echo "ref: refs/remotes/origin/master" > .git/refs/remotes/origin/HEAD

답변

git submodule deinit --all -f
나를 위해 일했다.