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

元に戻す正確なマージコミットを指定する場合は、同じrevertコマンドを使用できますが、追加のパラメーターを指定できます。マージコミットのSHA1ハッシュが使用されます。-mの後に1が続くことは、マージ(マージ先のブランチ)の親側を保持することを示します。この復帰の結果、Gitはマージからの変更をロールバックする新しいコミットを作成します。

$ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>