Git 치명적 : 참조에 잘못된 형식이 있습니다 : 'refs / heads / master
저장소 Dropbox
를 동기화하는 데 사용 하고 git
있지만 지금 시도 push
하면 오류가 발생합니다.
fatal: Reference has invalid format: 'refs/heads/master (MacBook-Pro's conflicted copy 2012-10-07)'
따라서 Dropbox가 충돌을 감지하고 복사본을 만든 것 같습니다. 네, 문제 없습니다. 충돌하는 파일을 삭제했습니다. 그래도 위의 자식 오류가 발생합니다.
$ git checkout master
M index.html
Already on 'master'
$ git add .
$ git commit -a -m "Cleanup repo"
[master ff6f817] Cleanup repo
1 file changed, 5 insertions(+), 5 deletions(-)
$ git push
fatal: Reference has invalid format: 'refs/heads/master (MacBook-Pro's conflicted copy 2012-10-07)'
The remote end hung up unexpectedly`
이 문제를 어떻게 해결할 수 있습니까? 감사.
이 명령은 되돌릴 수 없기 때문에 확실하지 않은 경우 저장소를 백업하십시오.
먼저 repo 디렉토리로 이동하십시오.
cd myrepo
그런 다음 충돌하는 파일을 재귀 적으로 검색하고 삭제하십시오.
find . -type f -name "* conflicted copy*" -exec rm -f {} \;
마지막으로 git의 packed-refs 파일에서 "충돌 된"참조를 제거하십시오.
awk '!/conflicted/' .git/packed-refs > temp && mv temp .git/packed-refs
충돌하는 파일은 여러 위치에있을 수 있습니다.
.git/logs/refs/remotes/origin/
.git/logs/refs/heads/
.git/refs/remotes/origin/
.git/refs/heads/
또는 .git
하위 디렉토리의 모든 곳을 볼 수 있습니다 .find . -name '*conflicted*'
그렇지 않으면 활성 분기를 나열하고 의심스러운 항목을 git branch -a
삭제 ( git branch -d
)합니다.
이는 동료가 Dropbox가 업데이트되기 전에 변경 사항을 푸시하고 PC를 종료 할 때도 발생합니다.
나는 그것을 아주 간단하게 해결했다.
충돌하는 사본을 삭제했습니다. (XXXX의 충돌 사본 yyyy-mm-dd)
그리고 정상적으로 당기십시오.
내 동료가 엉망이되기 전에 변경 사항을 적용했습니다. 그리고 그는 자신의 변화를 다시 밀어 붙입니다. 이번에는 종료하지 않습니다. :)
.git 폴더에서 충돌하는 모든 파일을 삭제할 수 있었지만 더 이상 존재하지 않는 파일에 대한 오류가 계속 발생했습니다.
나를위한 수정은 .git/refs/packed_refs
"충돌"텍스트가 포함 된 줄을 열고 삭제하는 것이 었습니다 .
나에게는 오류가 발생했습니다. fatal: Reference has invalid format: 'refs/tags/r0.2:3'
/.git/packed_refs 파일 로 이동하여 다음 줄을 삭제할 수 있습니다.refs/tags/r0.2:3
그런 다음 작동하기 시작했습니다. 하지만 처음에 왜 일어 났는지 모르겠습니다.
해볼 git checkout master
건강한, 잘라는 이름의 지점에 얻을 첫번째.
같은 오류가 발생했습니다
치명적 : 참조에 잘못된 형식이 있습니다 : 'refs / heads / somebranch (1)'
다음 명령의 경우
git branch
그런 다음 명령을 사용하여 잘못된 이름 (지점 이름 다음에 (1))을 검색했습니다.
find . -name 'somebranch (1)'
그리고 다음과 같은 결과를 보여주었습니다
./.git/refs/heads/somebranch (1)
somebranch IMO 의 일부 복제 버전입니다 . 그래서 다음과 같은 find 명령을 실행하여 이것을 제거했습니다.
find . -name 'somebranch (1)' -print -exec rm -rf {} \;
그런 다음 분기 명령이 성공적으로 실행됩니다.
git branch
다음과 같은 유사한 오류가 발생했습니다.
fatal: Reference has invalid format: 'refs/heads/user-search-api (Sithu's conflicted copy 2016-01-08)'
.git/refs/heads/user-search-api (Sithu's conflicted copy 2016-01-08)
원격 Dropbox 저장소에서 파일 을 삭제 하기 만해도 문제가 해결되었습니다.
'Programing' 카테고리의 다른 글
마지막으로 편집 한 날짜별로 파일 나열 (0) | 2020.08.17 |
---|---|
클릭 이벤트와 마찬가지로 'touchstart'이벤트에 대해 e.PageX 위치에 해당하는 것이 있습니까? (0) | 2020.08.17 |
char 배열 c 지우기 (0) | 2020.08.17 |
SQL Server에서 후행 공백을 포함하지 않는 LEN 함수 (0) | 2020.08.17 |
루비에서 Ctrl-c 캡처 (0) | 2020.08.17 |