マニュアルページを読んでから、何もしません。ので:
Modifies the index or directory cache. Each file mentioned is updated
into the index and any unmerged or needs updating state is cleared.
何のファイル引数がない場合は、「各ファイルは、」空のセットである、と私は空のケースに割り当てられている任意の場所にその特別な意味を見つけることができません。
しかし、git update-index
それはGitのレポにあるかどうかを確認ん
~$ git update-index
fatal: Not a git repository (or any of the parent directories): .git
~$ echo $?
128
したがって、引数なしでgit update-index
少なくとも健全性チェックを実行し、エラーメッセージと終了ステータスを提供します。実際に何もしなければ、gitリポジトリにあるかどうかをチェックするためのスクリプトで使用できます。あなたに気をつけてください。他のコマンドは引数なしでgit rev-parse
のようになります。
「引数はありませんが、ファイル引数がありません」という意味の場合は、の場合は、既にgitにある指定されたファイルの処理を実行します。追跡されていないファイルであるファイル引数を検出すると、--add
が指定されていないため、エラー診断が行われます。失敗した終了ステータスで終了し、索引は変更されません。
基本的にオプションがないと、指定されたすべてのファイルを操作できるか、何も処理せずに何もしません。これにより、インテントがトラッキングされたファイルに対してのみ動作するような状況が防止されます。 -g/--again
の
目的は、すでに修正して、上演されたファイルにgit update-index
を繰り返す方法を提供することです。これらのファイルでは、索引が作業コピーに一致するようにファイルを再度更新します。
HEAD
コミット、ステージングされたインデックス、および作業コピーで、特定のファイルが異なる状況が発生する可能性があります。これは、ファイルをハックしてgit add
(またはgit update-index
)でステージングすると発生します。その時点で、インデックスは作業コピーと同じです。あなたはそれを再びハックします。今はインデックスと異なり、それはHEAD
とは異なります。それを再びインデックスに更新すると、インデックスが作業コピーと同期されるので、唯一の違いはHEAD
です。
git diff
を実行すると、作業ファイルとインデックスを比較することに注意してください。インデックスとHEADの差異を確認するには、git diff --cached
を、対処方法git diff HEAD
を実行します。したがって、あなたはファイルをハックしてからそれをステージングし、再びそれをハックします。git diff
は、ステージと作業の間のちょうど最新のハックを表示します。オリジナルのハックはgit diff --cached
であり、全体的な複合ハックはgit diff HEAD
です。これを武器に、git update-index
の効果を調べることができます。
-g
は、ファイル引数で有用であると思われる:git update-index -g file-j file-k
手段「の修正を上演しているすべてのものの上にupdate-index
を行うとも、新たにハッキングfile-j
とfile-k
でそれを行います。」
出典
2016-09-13 20:36:16
Kaz
ありがとうございます。 「インデックスに再び更新することで、インデックスを作業コピーと同期させる」ということは、まさに私が理解していなかったことです。 – Arkadiy