Git 오류 수정 방법 : 먼저 현재 색인을 해결해야합니다.

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

오류 : 먼저 Git 소스 제어에서 현재 색인을 해결해야합니다.

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

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

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

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

  • 병합에 실패 하면 다른 작업으로 이동하기 전에 병합 충돌을 해결해야합니다.
  • 현재 (또는 대상 분기) 파일에 충돌 이 있으며 이러한 충돌로 인해 분기에서 체크 아웃하거나 코드를 푸시 할 수 없습니다.

솔루션을 진행하기 전에 적절한 버전 제어 가 있는지 확인 하고 충돌을 해결하기 전에 다른 팀 구성원이 코드를 변경하지 못하도록하는 것이 현명합니다.

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

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

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

예 :

$ git add file.txt $ git commit

커밋하는 동안 개인적인 해설을 추가 할 수 있습니다. 예 :

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

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

분기를 병합하고 엉망으로 만드는 경우가 많이 있습니다. 모든 갈등과 혼란으로 인해 프로젝트는 이제 엉망이고 팀원들이 당신을 비난하고 있습니다. 이 경우 이전 커밋 (병합 커밋)되돌려 야 합니다. 이렇게하면 병합이 완전히 취소되고 병합을 수행하지 않은 상태로 전체 프로젝트가 다시 표시됩니다. 수리 할 수 ​​없을 정도로 엉망이 된 경우 이것은 생명의 은인이 될 수 있습니다.

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

$ git reset -–merge

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

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

$ git revert HEAD

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

$ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>