エラー ' 最初に現在のインデックスを解決する必要があります 」はGitで発生し、マージの競合が発生していることを意味します。競合を解決しない限り、別のブランチにチェックアウトすることはできません。このエラーメッセージは、マージが失敗したか、ファイルとの競合があることも示しています。
エラー:最初に現在のインデックスを解決する必要があります
これらすべてのファイル、マージ、および競合は何ですか? Gitの初心者の場合、これらの用語はわかりません。 Gitはバージョン管理プラットフォームであり、複数のユーザーが同時にファイルを操作し、コードのローカルコピーをクラウドに保存されているものにプッシュすることができます。このように、ダウンロードした(またはすでにプッシュされた)コードを変更してクラウドに再度プッシュすると、変更はローカルコピーによってクラウドで上書きされます。
Gitにはブランチの概念があります。マスターブランチがあり、そこから他のいくつかのブランチが分岐しています。このエラーは、(チェックアウトを使用して)あるブランチから別のブランチに切り替えているときに、現在のブランチのファイルに競合がある場合に特に発生します。それらが解決されない場合、ブランチを切り替えることはできません。
Gitエラーの原因:最初に現在のインデックスを解決する必要がありますか?
前述のように、このエラーの原因は非常に限られています。このエラーが発生する理由は次のとおりです。
- に マージに失敗しました また、他のタスクに進む前に、マージの競合に対処する必要があります。
- がある 競合 現在の(または対象のブランチ)のファイル内で、これらの競合のために、ブランチまたはプッシュコードをチェックアウトすることはできません。
ソリューションを続行する前に、次のことを確認してください。 適切なバージョン管理 また、競合を解決する前に、他のチームメンバーがコードを変更しないようにすることをお勧めします。
解決策1:マージの競合を解決する
マージがGitによって自動的に解決されない場合、インデックスと作業ツリーは特別な状態のままになり、マージを解決するために必要なすべての情報を提供するのに役立ちます。競合するファイルはインデックスで特別にマークされ、問題を解決してインデックスを更新するまで、このエラーメッセージが表示され続けます。
- すべての競合を解決します 。インデックスでマークされるため、競合するファイルを確認し、それに応じて変更を加えます。
- 既存のすべての競合を解決した後、 追加 ファイル、次に コミット 。
例は次のとおりです。
$ git add file.txt $ git commit
コミット中に個人的なコメントを追加できます。例は次のとおりです。
$ git commit –m「これはAppualsGitリポジトリです」
- 競合を解決したら、既存のブランチをチェックアウトして、問題が修正されているかどうかを確認してください。
解決策2:マージを元に戻す
ブランチをマージして混乱するケースはたくさんあります。すべての衝突と混乱のために、プロジェクトは今や混乱していて、あなたのチームメンバーはあなたのせいにしています。この場合、あなたはしなければなりません 以前のコミットを元に戻す(マージコミット) 。これにより、マージが完全に元に戻され、マージを行わなかったときの状態にプロジェクト全体が戻ります。あなたが修理を超えて物事を台無しにしたならば、これは命の恩人になることができます。
に マージを元に戻す 、次のように入力します。
$ git reset --- merge
上記のコマンドは、インデックスをリセットし、「コミット」と「ヘッド」で異なる作業ツリー内のファイルを更新します。ただし、インデックスと作業ツリーの間で異なるファイルは保持されます。
あなたも試すことができます HEADを元に戻す 次のコマンドを使用します。
$ git revert HEAD
元に戻す正確なマージコミットを指定する場合は、同じrevertコマンドを使用できますが、追加のパラメーターを指定します。マージコミットのSHA1ハッシュが使用されます。 -mの後に1が続く場合は、マージの親側(マージ先のブランチ)を保持することを示します。この復帰の結果、Gitはマージからの変更をロールバックする新しいコミットを作成します。
$ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>読んだ3分