threads / discuss / 15586

Get a copy of an old version of a file, using git gui/gitk

Subject: Get a copy of an old version of a file, using git gui/gitk

## tl;dr

2 messages between Sep 19, 2008 and Sep 19, 2008.

replies: 1people: 2as markdown or json

Peter Krefting· Sep 19, 2008, 07:58 UTC · lore
Hi!

I am trying to introduce new people to Git, and am primarily showing how to use the GUI tools (git gui/gitk), since the project is running on Windows. A question that I couldn't answer arose:

How do I save a copy of an older version of a file (one that has either been modified locally, or an earlier version in the project history), from git gui or gitk?

>From the command line, I would try to find the SHA-1 and use git

cat-file, but I can't figure out how to do it from the GUIs. Or, to fall back to the command-line, how to get the SHA-1 for the object out of git gui/gitk.

-- 
\\// Peter - http://www.softwolves.pp.se/
Björn Steinbrink· Sep 19, 2008, 08:20 UTC · re: Peter Krefting · lore

Re: Get a copy of an old version of a file, using git gui/gitk

On 2008.09.19 08:58:04 +0100, Peter Krefting wrote:
> From the command line, I would try to find the SHA-1 and use git
> cat-file, but I can't figure out how to do it from the GUIs. Or, to
> fall back to the command-line, how to get the SHA-1 for the object out
> of git gui/gitk.

You don't need the sha1 of the blob object, just the revision and the filename, and then you can reference the blob using the <tree-ish>:<path> syntax.

For example:
	git cat-file blob HEAD^^^:some/file.c
or less plumb-ish:
	git show HEAD^^^:some/file.c

I've been told that neither cares about the CRLF conversion, and I don't know if there's anything except "git checkout" that actually does care about it. With checkout, you would do:

git checkout HEAD^^^ -- some/file.c

But that replaces the current version of that file in your working tree and index with the version from the HEAD^^^ revision, so that might not be exactly what you were looking for.

Björn

← back to recent threads