It's used when you are asking someone to do something.
くれ/ください = please
くれた/くださった = did it for me
教えてくれ/教えてください = please teach (me)
教えてくれた/教えてくださった = (he) taught (me)
生きる意味を教えてくれ = please teach me the meaning of life.
あげる has a similar meaning. It's used when you are doing something for someone.
生きる意味を教えてあげる = I'll teach you the meaning of life.
もらう can be used like くれ too but I'm not sure on the specifics.
Also beware that くれる is also a verb meaning to give.
金はくれない = will not give money.
すごい。
Thanks that was super specific, I love it!
くれる is specifically "to give to me"; you can't use くれる if you're giving something to another person. So, 金をくれない is "will not give money to me". There's a bit more to it than that since you can also use it to refer to something being given someone who's in your in-group (e.g. family), but that's the general gist.
もらう is "to receive". The main difference between くれる and もらう is the subject of the verb. If A gives B a cookie, you could either say "AさんはBさんにクッキーをあげました" or "BさんはAさんにクッキーをもらいました". Note that A and B are in grammatically opposite positions for each verb.
~てくれる and ~てもらう are very similar, but to put it simply, ~てもらう is like "I got [person] to do [thing] for me", whereas ~てくれる is just "[Person] did [thing] for me." Getting someone to do something for you sounds manipulative in English, but in Japanese, ~てもらう sort of expresses gratitude that they did the thing for you. Example: 父に車を買ってもらいました.
Also, about くれる vs. くださる: with the exception of ~てください, くださる is a very formal word (it's the 敬語 form of くれる) and therefore should only be used in formal situations. You're much more likely to use 教えてくれた than 教えてくださった.
Hope that helps!
教えてくれ
I'm having trouble with the 'くれ’ ending of this verb.
What's it mean?