Since we had updated Jenkins (by ~20 versions), our Windows slave could not pull anymore on git - fetch and clone was stuck. The strange thing was everything worked on cmd.exe (same user, same commands) but not when driven by Jenkins.
After some debugging, we were able to make it work, but one thing we noticed was our "/.ssh", "/.gitconfig", etc. local (on the slave) directories were not parsed.
The problem was identified using the dist-fork plugin:
jenkins@ourmaster:~$ java -jar jenkins-cli.jar -s http://localhost/jenkins dist-fork -l ourslave cmd /c c:/Tools/Git/bin/git.exe config --global user.name "Jenkins for .NET from dist-fork"
[WARN] Failed to authenticate with your SSH keys. Proceeding as anonymous
[distfork5204885019170585806.tmp] $ cmd /c c:/Tools/Git/bin/git.exe config --global user.name "Jenkins for .NET from dist-fork"
error: could not lock config file (null)/(null)/.gitconfig: No such file or directory
I don't know if it comes from "master-slave" or "git".