힘내 오류를 수정하는 방법 : 먼저 현재 색인을 해결해야합니다

Git에서“ 현재 색인을 먼저 해결해야합니다 ”라는 오류가 발생하며 병합 충돌이 발생하고 충돌을 해결하지 않으면 다른 지점으로 체크 아웃 할 수 없습니다. 이 오류 메시지는 또한 병합이 실패했거나 파일과 충돌이 있음을 나타냅니다.

오류 : 현재 색인을 먼저 해결해야합니다

이 모든 파일, 병합 및 충돌은 무엇입니까? Git 사용 초보자라면이 용어를 알 수 없습니다. Git은 여러 사람들이 파일을 동시에 작업하고 클라우드에 저장된 코드로 로컬 코드 사본을 푸시 할 수있는 버전 제어 플랫폼입니다. 이렇게하면 일부 다운로드 (또는 이미 푸시 된) 코드를 변경 한 후 다시 클라우드로 푸시하면 변경 사항이 로컬 사본에 의해 클라우드에서 덮어 쓰기됩니다.

힘내는 지점의 개념이 있습니다. 마스터 브랜치와 여러 가지 브랜치가 있습니다. 이 오류는 특히 한 지점에서 다른 지점으로 전환 (체크 아웃 사용)하고 현재 지점의 파일에 충돌이있는 경우에 발생합니다. 이들이 해결되지 않으면 분기를 전환 할 수 없습니다.

Git 오류의 원인 : 현재 색인을 먼저 해결해야합니까?

앞에서 언급했듯이이 오류의 원인은 매우 제한적입니다. 다음과 같은 이유로이 오류가 발생합니다.

  • 병합에 실패 했으며 다른 작업으로 넘어 가기 전에 병합 충돌을 해결해야합니다.
  • 현재 또는 대상 분기의 파일에 충돌 이 있으며 이러한 충돌로 인해 분기 또는 푸시 코드를 체크 아웃 할 수 없습니다.

솔루션을 진행하기 전에 올바른 버전 제어 가 가능한지 확인하고 충돌을 해결하기 전에 다른 팀 구성원이 코드를 변경하지 못하게하는 것이 좋습니다.

해결 방법 1 : 병합 충돌 해결

병합이 Git에 의해 자동으로 해결되지 않으면 인덱스와 작업 트리를 특수 상태로 유지하여 병합을 해결하는 데 필요한 모든 정보를 제공합니다. 충돌하는 파일은 색인에 특별히 표시되며 문제를 해결하고 색인을 업데이트 할 때까지이 오류 메시지가 계속 나타납니다.

  1. 모든 충돌을 해결하십시오 . 색인으로 표시되어 충돌이있는 파일을 확인하고 그에 따라 변경하십시오.
  2. 기존의 모든 충돌을 해결 한 후 파일을 추가 하고 커밋하십시오 .

예를 들면 다음과 같습니다.

 $ git add file.txt $ git commit 

커밋하는 동안 개인 논평을 추가 할 수 있습니다. 예를 들면 다음과 같습니다.

 $ git commit –m“이것은 Appuals Git 저장소입니다” 
  1. 충돌을 해결 한 후 기존 분기를 체크 아웃하고 문제가 해결되었는지 확인하십시오.

해결 방법 2 : 병합 되돌리기

브랜치를 병합하고 엉망으로 만드는 많은 경우가 있습니다. 모든 갈등과 혼란으로 인해 프로젝트는 이제 혼란스럽고 팀원이 당신을 비난합니다. 이 경우 이전 커밋 (병합 커밋)되돌려 야 합니다. 이렇게하면 병합을 완전히 취소하고 병합하지 않은 전체 프로젝트를 상태로 되돌릴 수 있습니다. 수리를 넘어서 물건을 엉망으로 만들면 생명의 은인이 될 수 있습니다.

병합되돌리려면 다음을 입력하십시오.

 $ git reset – 병합 

위의 명령은 색인을 재설정하고 '커밋'과 '헤드'가 다른 작업 트리의 파일을 업데이트합니다. 그러나 인덱스 트리와 작업 트리간에 다른 파일을 유지합니다.

다음 명령을 사용하여 HEAD되돌릴 수도 있습니다.

 $ 자식 되돌리기 헤드 

되돌리려는 정확한 병합 커밋을 지정하려는 경우 동일한 되돌리기 명령을 사용하지만 추가 매개 변수를 지정할 수 있습니다. 병합 커밋의 SHA1 해시가 사용됩니다. -m 다음에 1이 붙는 것은 병합의 부모 쪽 (병합 할 분기)을 유지하려는 것입니다. 이 되돌리기의 결과는 Git이 병합에서 변경 사항을 롤백하는 새로운 커밋을 생성한다는 것입니다.

 $ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4> 

재미있는 기사