Re: git reset --hard in .git causes a checkout in that directory
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:47:50
Jeff King [off-list ref] writes:
On Thu, Dec 03, 2009 at 12:30:46PM +0100, Maarten Lankhorst wrote:quoted
When I was working on my code and made a mess that I wanted to undo, I accidentally did it in the .git directory, and had a whole clone of my last committed tree there. It can be triggered easily: mkdir test; cd test; git init; touch foo; git add foo; git commit -m 'add foo'; cd .git; git reset --hard; [ -f foo ] && echo hello beauty Other parts of git could be affected, I haven't checked where exactly the bug hides, so I was afraid to send in a patchYuck. Thanks for the bug report. This is due to a too-loose check on my part in 49b9362 (git-reset: refuse to do hard reset in a bare repository, 2007-12-31). Junio, I think the following should go to maint (I didn't bother splitting the --merge and --hard code; --merge is in v1.6.2. I assumed we don't care about maint releases that far back).
Although I'll apply your patch to 'maint' and will merge it for 1.6.6, I am not quite sure if this is the best fix in the longer run. Shouldn't we go back to the top of the work tree and running what was asked there?