将旧提交中的文件解压缩到工作目录外的路径

时间:2013-05-12 16:54:52

标签: git

我在~/gitrepo/有一个工作目录(这是.git文件夹的位置,以及我常用的所有其他文件。)

我有一个旧的提交,我知道SHA-1哈希。在其中有一个文件foo.cpp我现在想要带回另一个目录(只是为了不弄乱我的工作树),例如:

~/Desktop/foo.cpp

怎么做?

3 个答案:

答案 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

命令。