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.
threads / discuss / 16481
git cat-file blob does not convert crlf
Subject: git cat-file blob does not convert crlf
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 ;-)
Re: git cat-file blob does not convert crlf
Hi,
On Thu, 27 Nov 2008, Quim K. Holland wrote:
> I think git is buggy.
You probably missed the difference between porcelain and plumbing. Git is not buggy.
Ciao, Dscho