2017-12-28 23 views
2

私はGitを使い慣れていません。私はローカルで誤ってファイルを削除したと思います。私はこのコマンドをgit rm -r --cached .と使用し、ファイルを削除しました。しかし、私はまだそれを約束しませんでした。元に戻すgit rm -rキャッシュ

どうすれば元に戻すことができますか?

+0

次は何をやめるのかと尋ねる賞です。このような状況でスタックオーバーフローに関するほとんどの質問は、 "私はすべての変更を加え、コミットしてから、強制的にpushしてしまった。 。あなたは、代わりに、停止し、尋ねた。あなたは正しい道を歩いています。 –

答えて

2

git rm documentationは一種の明確である:

はインデックスからのパスをunstageして削除するには、このオプションを使用し

を--cached。ワーキングツリーファイルは、変更されているかどうかにかかわらず、そのまま残されます。

ファイルを紛失した場合は、リポジトリに既にコミットされているためです(あなたのものではなく他のもの)。

git resetあなたのコミットされていないアクションをすべてクリアする必要があるので、以前のようなリポジトリを見つける必要があります。

+0

pssst ... loose/= lose – evolutionxbox

+0

@evolutionxbox psst、[thanks!](https://stackoverflow.com/posts/48004072/revisions) – Arount

0

インデックスにはパスとオブジェクトIDが含まれています。 git rm --cachedは索引項目を消去し、行為を元に戻すことは元の状態に戻すことを意味します。

チェックアウト後の内容が変更されていない場合は、git reset -- path/to/itがあなたのチケットです。コンテンツがgit addの場合はリポジトリにありますが、パスとコンテンツの関連付けが失われている場合は、適切な時間を見つけてgit showのオブジェクトを見つけてgit update-index --add --cacheinfo 10644,objectidhere,path/to/itを手動で復元してください。

編集:またはgit checkout以降のコンテンツを編集していない場合は、git addと入力してからもう一度git addと入力してください。

関連する問題