Setting up Jenkins and git-server on same server
For me I use jenkins in docker with git plugin.

The Git plugin will give you the ability to check the Git server every specific period of time or you can use git hook from github or bitbucket to trigger the task when ever any change happened to the repo or the branch.

For deployment, most of time I use shell build step to execute some shell command on remote node.