From: Jakub Narebski Date: Wed, 01 Nov 2006 11:22:01 GMT Subject: Re: Restore a single file in the index back to HEAD Message-ID: In-Reply-To: Nguyen Thai Ngoc Duy wrote: > On 11/1/06, Junio C Hamano wrote: >> I think at the UI level, the most appropriate place would be >> "git reset". Checkout is a Porcelainish that is primarily about >> working tree and it updates the index as a side effect (from the >> UI point of view); you can update the working tree without >> modifying index or you can update both index and the working >> tree, but updating only index and not working tree does not >> belong there. > > Then perhaps git-reset should do "co HEAD path" too if --index is not specified? > To sum up: > - git reset HEAD path -> git checkout HEAD path > - git reset --index HEAD path -> git-ls-files HEAD path|git > update-index --index-info > - git reset HEAD (without path) -> the current behaviour > > Because may be missing, there is some ambiguation here. Currently "git reset --soft " updates current head only, "git reset " is "git reset --mixed " and updates head and index, and "git reset --hard " updates head, index and working tree. The same should be the case for "git reset [--soft|--mixed|--hard] [] [--] [paths...]", with the exception that it wouldn't never update current head. (So --soft with pathspec wouldn't make sense). On the other hand git-reset is mainly about resetting current head, so perhaps git-reset isn't the best place to update fragments of index from HEAD branch. -- Jakub Narebski ShadeHawk on #git Poland