Run git pull in target folder instead of clone

Is there a way to skip the prepending clone operation and just run a git pull instead?

Yes, you can customize the clone logic by following this guide:
https://docs.drone.io/pipeline/ssh/syntax/cloning/#custom-logic

How does this work when drone creates and uses a folder in /tmp instead of desired working directory?
See another question/feature idea I posted today.

The pipeline commands are always executed with the workspace as the current working directory. If the workspace were customized, the current working directory would reflect this.

And this workspace is always within a temporary location as set my TMPDIR environment variable?

So for example If within drone.yml we set the following:

workspace:
  base: foo
  path: bar
environment:
  TMPDIR: /tmp/baz

Then commands will run from this directory including git commands?
/tmp/baz/foo/bar/drone-${RANDOM}

if you want to customize the temporary directory location, you need to pass TMPDIR to the ssh runner (e.g. with docker run -e TMPDIR). This variable is not sourced from the yaml.

Thanks for clarifying.