By default, the Jenkins checkout plugin wipes the directory before checkout. This configuration allows you to checkout to a seperate directory. SSH authentication to github.
checkout([
$class: 'GitSCM',
branches: [[name: '*/master']],
extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'any-directory-name']],
userRemoteConfigs: [[credentialsId: env.SSH_CRED_ID, url: 'git@github.com:snixon/myrepo-is-awesome.git']]
])