I'm assuming you are using 2.1.4
All the "move" methods are part of an overlap-aware position setters API for the kinematic bodies (normally, kinematicbodies ignore everything).
move
prevents overlaps, and that is all, what you experience when moving against another body is the effect of moving position>checking overlap>separating from collider.
If you want normal movement against solids, you will need to get the remainder of move
and "slide" that vector along the collision surface.
Here is an example:
http://docs.godotengine.org/en/2.1/learning/features/physics/kinematic_character_2d.html
move_and_slide
does all that for you, but you will have little control of the parameters used (and there is a bug in the wall/floor/ceiling checks, it will be fixed by 2.1.4.1).
This will be enough for most cases but sometimes you may prefer to have fine control of the results of a character motion.
Something else, move
takes the full amount of movement you want to achieve, that is why you integrate velocity with the delta time when using it (to get the movement in that fraction of time), but move_and_slide
does that internally so you need to use the whole velocity vector with it.