threads / discuss / 16481

git cat-file blob does not convert crlf

Subject: git cat-file blob does not convert crlf

## tl;dr

3 messages between Nov 26, 2008 and Nov 27, 2008.

replies: 2people: 3as markdown or json

Quim K. Holland· Nov 26, 2008, 19:34 UTC · lore

I think git is buggy. I wanted to discard the changes I made to my file by checking out a copy from the last commit, so I said % git cat-file blob HEAD:my-file >my-file But this does not respect core.autocrlf and the file becomes one long line. Also it feels stupid that I have to say my-file twice at the command prompt.

Junio C Hamano· Nov 26, 2008, 19:42 UTC · re: Quim K. Holland · lore

Re: git cat-file blob does not convert crlf

"Quim K. Holland" <qkholland@gmail.com> writes:
> I think git is buggy.
Thanks for pointing it out X-<.
> I wanted to discard the changes I made to my file by checking out a copy from the last commit, so I said
> % git cat-file blob HEAD:my-file >my-file
> But this does not respect core.autocrlf and the file becomes one long line.

That is pretty much intentional. cat-file is a low-level command that is meant to inspect the raw object contents. The output from the command has to be reproducible regardless of what customization you have in your particular repository and omission of attributes support (including the crlf conversion) is quite deliberate.

You said that you wanted to discard the changes by checking out a copy out of the HEAD commit. This can literally be done by:

	$ git checkout HEAD my-file

If you want to check out a copy out of the index (i.e, "the last staged version"), you can say:

	$ git checkout my-file
In other words, if you want to checkout, you can say checkout ;-)

← back to recent threads