Re: why is git destructive by default? (i suggest it not be!)
- From
Boaz Harrosh <bharrosh@panasas.com>
- Date
- Jun 25, 2008, 08:57 UTC
- Message-ID
- <48620897.5040708@panasas.com>
- In-Reply-To
- <m31w2mlki4.fsf@localhost.localdomain>
Jakub Narebski wrote:
Show 12 quoted lines
> Boaz Harrosh <bharrosh@panasas.com> writes: > > >> Sorry >> git-reset --clean -f/-n for removing local changes >> git reset --hard for moving HEAD on a clean tree only > > Wouldn't "git reset <commit-ish>" be enough then? It modifies where > current branch points to (as opposed to git-checkout modifying what is > the current branch), and it modifies index. What it doesn't modify is > working directory, but it is clean already. >
Does not work. only --hard will do the job. The working directory is not touched and if you'll do a git-diff you'll see the diff between old-head to new-head. But what I want is to start-hack or merge on new-head.
> So the solution is: don't use `--hard'. >
the closest to git reset --hard that I can think of is:
Lets say I have $ git-branch -a * mybranch remote/master
I can $ git reset --hard remote/master Or I can $ git-checkout -b temp_mybranch remote/master $ git-branch -M temp_mybranch mybranch
The second will complain if I have local changes. I have just written 2 scripts. One "git-reset" that will filter out --hard before calling the original. Second "git-reset--hard" that will do the above.
Stupid me no more. It will not happen to me again. Just those poor new users out there, I guess you have to fall off your bike at least once.
Boaz