Git-一部のファイルをローカルで削除しましたが、リモートリポジトリから取得するにはどうすればよいですか


109

PC上の一部のファイルを削除しました。それらを再度ダウンロードするにはどうすればよいですか?

プルは言う:「すでに最新」。


1
Gitを使用している場合は、すべてのリポジトリ履歴がローカルに存在するため、「再度ダウンロード」する必要はありません。
cdhowie 2010年

地元から入手する方法を知っていますか?
チャーリーパーカー

回答:


162

gitは分散型VCSであるため、ローカルリポジトリにはすべての情報が含まれています。ダウンロードは必要ありません。リポジトリから必要なコンテンツを指先で抽出するだけです。

削除をコミットしていない場合は、現在のコミットからファイルをチェックアウトしてください。

git checkout HEAD <path>

削除をコミットした場合は、それらを含むコミットからファイルをチェックアウトする必要があります。おそらくそれは前のコミットでしょう:

git checkout HEAD^ <path>

しかし、それnが以前にコミットされている場合は、を使用するHEAD~nか、単に起動してgitk、適切なコミットのSHA1を見つけて貼り付けます。


2
副次的なコメントとして、これは完全なディレクトリでも機能し、単一のファイルに特別または特定のものではありません(少なくとも私が試したときに機能しました)。Thnx btw。
チャーリーパーカー、

5
注意:現在のディレクトリのドット<path>だけでも必須.です。ただし、「ブランチ」(HEAD上記の例)はオプションです。非常に多くのGitコマンドと同様に、出力もヘルプも役に立ちません。
MarkHu 2017年

39

git checkout filename

git reset --hard トリックもするかもしれません


9
git reset --hardメソッドを使用すると警告が表示され、ツリー全体が元の場所に戻されます。HEAD/ HEAD ^ /
HEAD〜n

git checkout filenameが私にとっての答えでした:)
Ruub

git checkout filenameは空のファイルを作成します
mrek

目的のフォルダに配置され、git checkount .魅力のように機能しました!
hzitoun 2017年

21

ローカルで複数のファイルを削除したがコミットしていない場合は、チェックアウトを強制できます

$ git checkout -f HEAD

「すでに最新」という出力からわかるように、この質問をする人は最近何もしていません。git checkout -f HEADが危険であることを指定する必要がありますか?コミットされなかったローカルの変更を元に戻す可能性があるため(以前のファイルを復元すると良い結果になり、編集したファイルの変更が失われるとマイナスの結果になります)。
Lionel Trebuchon 2017年

15

複数のファイルをローカルで削除し、変更をコミットしなかった場合は、ローカルリポジトリのパスに移動し、gitシェルを開いて入力します。

$ git checkout HEAD .

最後のコミットの前に削除されたすべてのファイルが復元されます。

「。」を追加 現在のリポジトリで削除されたすべてのファイルをそれぞれのパスに復元します。

詳細については、ドキュメントをご覧ください。


2

ファイルを削除する前に、以前のバージョンをチェックアウトする必要があります。git checkout HEAD^最後のリビジョンをチェックアウトしてみてください。


0

また、次の手順を実行して、gitリポジトリがIDEと正しくリンクされるようにします。

 $ git reset <commit #>

 $ git checkout <file/path>

これがお役に立てば幸いです!!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.