Ответ 1
Если вы хотите, чтобы apache (пользователь) мог извлекать из git, вам нужно создать ssh-ключ для apache, а затем добавить это к ключам только для чтения в github.
Поток - это что-то вроде этого (подстраивайте под свои нужды)
usermod -s /bin/bash apache
su apache
cd ~
ssh-keygen # work through the keygen dance (added a dash)
Загрузка (тильда здесь относится к apache homedir) ~/.ssh/id_rsa.pub
для github и предоставления доступа apache к любому репозиторию, из которого ему нужно извлечь.
Затем вы можете протестировать на сервере снова su'ing для apache и запустить git pull
su apache
cd ~/working-copy
git clone my-project
После этой работы вы сможете запустить git pull через PHP.