여러 단계 항목에 대한 자식에서 치명적인 오류가 발생합니다. 코드를 커밋하려고했습니다. 모든

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최신 답변에 언급되어 있습니다 .

  1. 색인 삭제

    $ rm .git/index
    
  2. 모두 추가

    $ git add -A
    
  3. 범하다

    $ 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 지수와의 거래는 무엇입니까?

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) 에서이 오류가 발생했습니다. 내가 한 일은 앱을 종료하고 다시 열면 작동하기 시작했습니다.