Suppose this case:

git clone .../blessedRepo.git
// do changes
git commit -m"bad1"
// do changes
git commit -m"bad2"
git reset --hard HEAD^4 // Why does it let me do this?

// I just "broke" my local repository, because if I continue

// do changes
git commit -m"good1"
git push origin master // fails because the history disrespects the remote repo's history

The following commands are ok to do (because I have 2 unpushed commits):
 git reset --hard^1
 git reset --hard^2
but these are not and should be prevented (unless forced):
 git reset --hard^3
 git reset --hard^4

Is there any way to make git idiot proof by enabling that the local repo should always respect the history of the remote repo (unless forced)? Is there any way to make this a default for anyone who clones our blessed repo? No one that clones our blessed repo wants to come into the situation above. And if they do, they can always force it.

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to
More majordomo info at

Reply via email to