Why is get_the_excerpt returning full content

Based on this…

… I just want to show the excerpts (until the more tag).

… it sounds like what you want is to show the post content up to the <!--more--> tag, rather than the excerpt proper which is hand-written into a special field. To do that, you need to use the_content()/get_the_content() rather than the excerpt cousin functions, and you need to have the global variable $more set correctly, but that is not hard to do.

$q = new WP_Query(array('post_type'=>'post'));

global $more;

while ( $q->have_posts() ) {
  $q->the_post();
  $more = 0;
  $the_exc = get_the_content();
  echo $the_exc;
}

The technique is explained in the Codex.