OS X에서 Unity 게임 엔진과 함께 Git 버전 2.2.0을 사용하고 내 코드를 커밋하려고했습니다. 모든 것을 추가했지만 오류 메시지가 표시되지 않았습니다. 그런 다음 -m 커밋 하고이 오류 메시지가 나타납니다.
fatal: multiple stage entries for merged file 'Assets/Prefabs/Resources'
그것을 보지 못했지만 오류 메시지가 표시되지 않았습니다. 실제로 Everything up-to-date
비트 버킷 (리포지토리가있는 곳)을 확인했는데 커밋을 표시하지 않았습니다. 그래서 로컬 로그를 확인했는데 커밋도 표시되지 않습니다.
나는 답을 찾기 위해 구글을 보았지만 아무것도 없다. 이 오류는 무엇입니까? 어떻게 고칠 수 있습니까?
답변
최신 버전의 Git (2.3+, 2015 년 2 분기)에서 작동하는 첫 번째 해결 방법은 grant 의 최신 답변에 언급되어 있습니다 .
-
색인 삭제
$ rm .git/index
-
모두 추가
$ git add -A
-
범하다
$ git commit -a
원래 답변 (2014 년 말)
일반적인 해결 방법은 다음과 같습니다.
- 원격 저장소를 새로운 로컬 저장소로 다시 복제하십시오.
-
첫 번째 저장소에서 두 번째 저장소로 변경 사항을 추가하십시오.
$ cd /patH/to/second/cloned/repo $ git --work-tree=/path/to/first/repo add .
read-cache.c
이 패치에서 설명 된 이 오류 메시지를 볼 수 있습니다 ( ” read-cache.c
: 병합되지 않은 항목이 제거되었는지 확인). “)에서 설명하고 Git 2.2 커밋에 도입 된 .
이것이 최신이므로 Git을 2.1로 다운 그레이드 하면 해당 패치의 영향을받지 않을 수 있습니다.
그만큼 OP 다니엘 Toebe는 추가 의견에 :
이 문제는 내 맥북에서 발생하여 실패했으며 다른 컴퓨터로 인해 프로젝트가 실패했습니다.
답변
변경 사항을 추가하고 커밋 한 다음 방금 커밋 한 파일을 삭제했기 때문에이 문제가 발생했다고 생각합니다. 이것이 귀하의 경우와 비슷하게 들리면 아래의 내용을 따라 다시 복제를 저장하고 변경 사항을 수동으로 추가하는 것이 좋습니다.
@slider가 제안한 것과 비슷한 내 저장소에서 .git / index 파일을 삭제 하여이 문제를 해결할 수있었습니다 (경로를 잘못 입력했다고 생각합니다).
rm .git/index
그런 다음 로컬 변경 사항을 다시 추가하고 커밋해야했습니다.
git add -A
git commit -m "..."
그런 다음 원격으로 푸시 할 수있었습니다.
자식 인덱스는 무엇이며 어떻게 관련이 있습니까?
git“index”는 git 저장소에 커밋하려는 파일을 저장하는 위치입니다.
git 저장소에 파일을“커밋”(체크인)하기 전에 먼저 파일을 git“index”에 배치해야합니다.
나는이 파일을 삭제하면 git이 repo를 다시 색인화하고 새로운 파일을 생성 할 것이라고 생각합니다. 로컬 저장소가 삭제 된 파일없이 다시 색인되어 모든 소란을 유발했기 때문에이 문제를 해결합니다.
편집 : 이것은 Mac과 관련이있는 것 같습니다 (댓글을 기준으로) OSX 10.10 및 git 버전 2.3.4를 사용하는 경우 brew를 통해 설치됩니다.
답변
프로젝트
rm .git/index
git reset
인덱스를 삭제 한 후 git reset으로 인덱스를 다시 만들어야합니다.
하위 모듈의 경우 :
메인 프로젝트 폴더로 이동
rm .git/modules/your_project_structure/index
git reset --hard HEAD
답변
프로젝트에서 Git 인덱스 파일을 제거 할 수 있습니다. 프로젝트의 루트에서 다음 명령을 실행하십시오.
rm .git/index
그 자식 후 작동합니다.
답변
나는 다른 해결책을 시도하고 그것은 나를 위해 작동합니다. 아래는 내 옵션입니다
#cd .git
#rm index
#cd ..
#git add .
답변
이것이 서브 모듈에서 발생하는 경우
색인 파일은 상위 .git
디렉토리 내에 있습니다 .
.git/modules/your_project_structure/index
하위 모듈에는 .git
(적어도 작업중 인 프로젝트 에는) 이름이 지정된 디렉토리가 없으며 단지.git
의 git 디렉토리를 찾을 위치를 알려주 파일 있습니다.
힘내 상태는 내가하지 않은 변경 사항을 보여줍니다
인덱스 파일을 제거하고을 수행 한 후 git reset
설명 할 수없는 많은 변경에 직면했으며 하드 리셋이 도움이되지 않았습니다.
경고 모든 변경 사항이 손실되므로 커밋하고 계속하기 전에 푸시하십시오.
색인이 손상된 것 같으므로 다음 명령으로 제거했습니다.
git rm -rf --cached .
git reset --hard HEAD
답변
방금 Github Desktop Client (OSX) 에서이 오류가 발생했습니다. 내가 한 일은 앱을 종료하고 다시 열면 작동하기 시작했습니다.