title = Step by step cards = checkout commit-auto [description] Welcome to today's lesson! We're going to learn how to make commits with more precision! Have a look at these two timelines. They have exactly the same outcome. But one of them makes it much easier to figure out what happened. [win] Right! Having each change in its own commit makes it easier to understand what's going on! Let's learn how to do that! [setup] echo "A small, but heavy glass ball." > ball echo "A thin book, that's standing upright." > book echo "A candle, burning with a blue flame." > candle echo "A smoke detector. It's absolutely silent." > smoke_detector git add . git commit -m "The beginning" git branch -M all-at-once echo "The ball is now touching the book." > ball echo "The book has fallen over." > book echo "The candle has been blown out." > candle git commit -am "The end" git checkout HEAD^ git checkout -b step-by-step echo "The ball is now touching the book." > ball git commit -am "The ball rolls towards the book" echo "The book has fallen over." > book git commit -am "The book falls over" echo "The candle has been blown out." > candle git commit -am "The book blows out the candle" git checkout HEAD~3 [win] # Pick the timeline that's clearer, and make the next logical change! git show step-by-step:smoke_detector | grep -v "absolutely silent"