Question: what is the difference between git reset hard and soft?
Answer: The difference between them is to change or not change head, stage (index), working directory. Git reset --hard will change head, index and working directory. Git reset --soft will change head only. ... But after that you still have the changes from bad commit in your index and working directory.