我在~/gitrepo/
有一个工作目录(这是.git
文件夹的位置,以及我常用的所有其他文件。)
我有一个旧的提交,我知道SHA-1哈希。在其中有一个文件foo.cpp
我现在想要带回另一个目录(只是为了不弄乱我的工作树),例如:
~/Desktop/foo.cpp
怎么做?
答案 0 :(得分:2)
git checkout SHA -- foo.cpp
cp foo.cpp ~/Descktop/foo.cpp
之后您将编辑foo.cpp
,因此您可能希望使用git reset
或其他内容将其还原。
答案 1 :(得分:0)
您可以在github网站上找到您的提交,并从那里下载您想要的文件。
答案 2 :(得分:0)
这是我为获取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
命令。