DD is nearly 4, DS is nearly 1. She's usually very affectionate with him but if he does anything that annoys her, she smacks him or shoves him or whatever. I think she genuinely doesn't understand much of the time that it will hurt him.
About 20 minutes ago, she lobbed a Megablok at his head, from close range, for fun I think
He cried and has a red mark. I yelled and threatened to throw the gingerbread dough mix we have for doing biscuits later in the bin - which then obviously got her upset because she wanted to make gingerbread, not because she felt bad about hurting him. So then we sat down and had a chat about why I was cross and how it isn't nice to hit people and how she wouldn't like it if I hit her every time she hit him*. She told him she was sorry (without being told to, I don't make her say sorry because I think it's meaningless if forced). All was well.
Then just now she took a swing at him because he came too close while she was playing. Or something. ARGH.
*I did actually smack her the other day when she hit him. It was complete instinct: someone has hit my baby so I must defend him. It was a bit of a shock to all of us and I apologised to her. I don't generally smack though. Tempting though it is