Computer >> 컴퓨터 >  >> 문제 해결 >> Windows 오류

Git 오류를 수정하는 방법:먼저 현재 인덱스를 해결해야 합니다.

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

Git 오류를 수정하는 방법:먼저 현재 인덱스를 해결해야 합니다.

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

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

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

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

  • 병합 실패 다른 작업을 진행하기 전에 병합 충돌을 해결해야 합니다.
  • 충돌이 있습니다. 현재(또는 대상 브랜치)의 파일에서 이러한 충돌로 인해 브랜치나 푸시 코드에서 체크아웃할 수 없습니다.

솔루션을 진행하기 전에 적절한 버전 관리 가 있는지 확인하십시오. 충돌을 해결하기 전에 다른 팀 구성원이 코드를 변경하지 못하도록 하는 것이 좋습니다.

해결책 1:병합 충돌 해결

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

  1. 모든 충돌 해결 . 색인으로 표시되므로 충돌이 있는 파일을 확인하고 적절하게 변경하십시오.
  2. 기존 충돌을 모두 해결한 후 추가 파일을 선택한 다음 커밋 .

예는 다음과 같습니다.

$ git add file.txt

$ git commit

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

$ git commit –m “This is Appuals Git repository”
<올 시작="3">
  • 충돌을 해결한 후 기존 지점을 확인하고 문제가 해결되었는지 확인하십시오.
  • 해결책 2:병합 되돌리기

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

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

    $ git reset -–merge

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

    HEAD 되돌리기를 시도할 수도 있습니다. 다음 명령을 사용하여:

    $ git revert HEAD

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

    $ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>