私は作業ディレクトリを持っています~/gitrepo/
(これは.git
フォルダーがあり、通常どおり他のすべてのファイルがある場所です)。
SHA-1 ハッシュを知っている古いコミットがあります。その中に、別のディレクトリfoo.cpp
に戻したいファイルがありました(作業ツリーを台無しにしないため)。たとえば、次のとおりです。
~/Desktop/foo.cpp
これを行う方法?
私は作業ディレクトリを持っています~/gitrepo/
(これは.git
フォルダーがあり、通常どおり他のすべてのファイルがある場所です)。
SHA-1 ハッシュを知っている古いコミットがあります。その中に、別のディレクトリfoo.cpp
に戻したいファイルがありました(作業ツリーを台無しにしないため)。たとえば、次のとおりです。
~/Desktop/foo.cpp
これを行う方法?
git checkout SHA -- foo.cpp
cp foo.cpp ~/Descktop/foo.cpp
その後、編集しfoo.cpp
たことになるので、何かで元に戻したいと思うかもしれませんgit reset
。
これは、Informix 4GL ファイルの古いコピーを取得するために私が行ったことです。最初に、re_trnfunc.4gl を re_trnfunc.4gl.sav にコピーしました。これは、これまで試したことがないためです。
次に、次のように入力しました。
git log --shortstat --pretty
どのバージョンが欲しいかを教えてくれたコメントに対応するコミットメントを探しました。
commit 6fbe9303e7f80150fdf6abdc8f926a802f8a171e
Author: Charles M. Norton <someone@somewhereville.com>
Date: Wed Jul 1 14:13:58 2015 -0400
Put in new re payment distro order, interest, charges, and principal.
1 files changed, 34 insertions(+), 30 deletions(-)
次に、入力しました(@ДМИТРИЙМАЛИКОВの回答に示されているように)
git checkout 6fbe9303e7f80150fdf6abdc8f926a802f8a171e -- re_trnfunc.4gl
私はファイルを調べ、別の場所に保存し、re_trnfunc.4gl をチェックアウト前の状態に戻す必要がありました。
入った:
git reset HEAD re_trnfunc.4gl
ファイルの後で一時名にファイルをチェックアウトすることで、リセットする必要がなくなり--
ました。
git checkout 6fbe9303e7f80150fdf6abdc8f926a802f8a171e -- temp_re_trnfunc.4gl
指図。
github Web サイトでコミットを見つけ、そこから必要なファイルをダウンロードできます。