From: Junio C Hamano Date: Mon, 14 Mar 2016 07:01:07 GMT Subject: Re: [RFC/GSoC] Introduction Message-ID: In-Reply-To: <20160313211910.GA22052@ikke.info> Kevin Daudt writes: > On Mon, Mar 14, 2016 at 12:03:33AM +0530, Sidhant Sharma wrote: >> >> >> >> Other than this, I also tried to expand the list of potentially destructive >> commands and updated the list as follows (additions in brackets): >> >> * git rebase [ git pull --rebase ] >> * git reset --hard >> * git clean -f >> * git gc --prune=now --aggressive >> * git push -f [ git push :, git push + ] >> * [ git branch -D ] >> >> Are these additions appropriate? What other commands should be included? > > git checkout [ref] is destructive too if it would overwrite an > uncomitted change. Obviously. As that was designed to be the way to get rid of unsuccessful/unwanted edit in the working tree. "git add " is destructive if it overwrites the index entry that holds contents you have not committed. "git rm [--cached] " is destructive, too. I think "git checkout [] " falls into the same category.