There are differences. "Lineage" is the most specific of the three terms. It would be unusual to use "lineage" to mean simply ethnic identity, such as "German lineage." Rather, it refers to traceable lines of familial descent from particular ancestors, usually prestigious ones such as royalty or nobility: "My lineage goes back to the Mayflower"; "He is of Hapsburg lineage."
"Descent" is more general. "She is of Norwegian descent" simply means that her ethnic make-up is predominantly, though not necessarily entirely, Norwegian.
"Ancestry" is the converse of "descent." Ancestors have descendants. So to say "She is of Norwegian descent" implies "She has Norwegian ancestry."
However, "descent" and "ancestry" aren't precisely equivalent in common usage. Typically, "She is of Norwegian descent" indicates a predominance of Norwegian ancestors. "She has Norwegian ancestry" simply means that one or more of her forebears were Norwegian. It doesn't necessarily mean that Norwegian ancestors predominate in her lineage.
So "lineage" is the most specific, "ancestry" the least. And in idiomatic English, one usually says somebody is of a particular lineage/descent, and has a particular ancestry.