Gitエラーの修正方法:最初に現在のインデックスを解決する必要があります

Gitで「 現在のインデックスを最初に解決する必要があります」というエラーが発生し、マージの競合が発生することを意味します。競合を解決しない限り、別のブランチへのチェックアウトは許可されません。 このエラーメッセージは、マージが失敗したか、ファイルと競合していることも示します。

エラー:最初に現在のインデックスを解決する必要があります

これらのすべてのファイル、マージ、および競合とは何ですか? Gitを使用する初心者の場合、これらの用語は不明です。 Gitはバージョン管理プラットフォームであり、複数のユーザーが同時にファイルを操作し、コードのローカルコピーをクラウドに保存されているものにプッシュできます。 このようにして、ダウンロードした(または既にプッシュされた)コードを変更し、それを再びクラウドにプッシュすると、ローカルコピーによってクラウド内の変更が上書きされます。

Gitにはブランチの概念があります。 マスターブランチがあり、他のいくつかのブランチがそこから分岐しています。 このエラーは、あるブランチから別のブランチに切り替えて(チェックアウトを使用)、現在のブランチのファイルに競合がある場合に特に発生します。 解決されない場合、ブランチを切り替えることはできません。

Gitエラーの原因:現在のインデックスを最初に解決する必要がありますか?

前述のように、このエラーの原因は非常に限られています。 このエラーは次の理由で発生します。

  • マージが失敗したため、他のタスクに進む前にマージの競合に対処する必要あります。
  • 現在の(または対象となるブランチ)のファイルに競合があり、これらの競合のため、ブランチをチェックアウトしたりコードをプッシュしたりすることはできません。

ソリューションを続行する前に、 適切なバージョン管理があることを確認し、競合を解決する前に他のチームメンバーがコードを変更しないようにするのが賢明です。

解決策1:マージの競合を解決する

マージがGitによって自動的に解決されない場合、インデックスと作業ツリーは特別な状態のままになり、マージを解決するために必要なすべての情報が得られます。 競合するファイルはインデックス内で特別にマークされ、問題を解決してインデックスを更新するまで、このエラーメッセージが表示され続けます。

  1. すべての競合を解決します 。 インデックスによってマークされるため、競合するファイルを確認し、それに応じて変更を加えます。
  2. 既存の競合をすべて解決したら、ファイルを追加してからcommitします。

例は次のとおりです。

 $ 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> 

興味深い記事