我想要实现的是通过ssh在不同机器上自动单向同步2个裸存储库。
从一台裸仓库[CENTRAL机器]推送到另一台机器[REDMINE机器]上的另一台裸仓库:
git push
到用户'lamparna'
下的另一个裸仓[REDMINE](可以使用密钥访问REDMINE) )复杂的是,我推动了WS - > CENTRAL为'foton'
,并且必须以'lamparna'
(CENTRAL - > REDMINE)完成连接推送。
更新后挂钩[在CENTRAL上]:
#!/usr/bin/env ruby
# post-receive
`sudo -u lamparna git push --mirror ssh://lamparna@REDMINE/home/lamparna/repos/git/jine/lamparna.git`
我已经管理好了#34;模仿推送" (根据http://krisjordan.com/essays/setting-up-push-to-deploy-with-git):
ssh CENTRAL 'cd /opt/git_repos/jine/lamparna.git && echo "$FROM_COMIT_HASH $TO_COMIT_HASH" | /opt/git_repos/jine/lamparna.git/hooks/post-update'
这将正确运行,无需密码。
但是当我做一个真正的推动:git push
,然后推动CENTRAL,钩子被触发,但结束于:
remote: sudo: no tty present and no askpass program specified
周围环境:
在CENTRALL上,我允许组sitd
的所有用户在没有密码的情况下以lamparna
运行git:
%sitd ALL=(lamparna) NOPASSWD: /usr/bin/git_push_to_lamparna.sh, /usr/bin/git