Shit can also mean nonsense, something that isn't real.
If you say someone is "full of shit" it means you don't believe what he says. He is either lying or exaggerating.
So when you say "No shit?" It's like saying "You're really telling me the truth, right?"
It can also be a statement. " No shit." = "What I'm telling you is real /true / honest"
Related:
"Are you shitting me?" (not! "shitting ON") It would probably be pronounced "shittin" because it's only used informally.
"It's for real. I wouldn't shit you."
It's pretty vulgar, but a lot of people do use it, usually around friends. You would certainly NEVER use it in a professional / academic situation.