質問: gitmacのcron経由でgithubにプッシュ crontabによって実行されているbashスクリプトでgit pushを使用して、コミットをgithubにプッシュしようとしています。スクリプトの最後で、私はこれを行っています:# script processes some files, then: git add -a git commit -a -m "updated $(date)" git push origin master 追加とコミットは正常に機能します(また、cronを使用せずにclからスクリプトを実行すると、プッシュは正常に機能します)が、cronを使用したgithubへのプッシュでエラーが発生します。git: 'credential-osxkeychain' is not a git command. see 'git --help'. fatal: could not read username for 'https://github.com': device not configured 他のスレッド( this 、 this など)を検索しましたが、sshの問題ではないようです(少なくともssh_auth_sock環境変数を渡してみました) crontab行で、それは機能しませんでした)。 osx10.8を実行しています。何か案は?
回答: tl; dr:httpsの代わりにsshを使用してcron経由でgit pushの問題を解決しました。githubのサポートチームのおかげで、これを解決することができました。最初の問題は、cronジョブの実行時にgit-credential-osxkeychainが私のパスになかったことです。私の場合、gitとgit-credential-osxkeychainはどちらもxcodeコマンドラインツールディレクトリから実行されていました。$ which git /applications/xcode.app/contents/developer/usr/bin/git $ which git-credential-osxkeychain /applications/xcode.app/contents/developer/usr/bin/git-credential-osxkeychain cronからwhich gitを実行すると、cronは/usr/binからgitを実行していたことがわかります。cronジョブの先頭にあるpathに適切なディレクトリを次のように追加しました。export path=$path:/applications/xcode.app/contents/developer/usr/bin これでgit: 'credential-osxkeychain' is not a git commandエラーは解決しましたが、さらに別のエラーが発生しました。fatal: could not read username for 'https://github.com': device not configured githubサポートチームの提案で、httpsではなくsshを介して認証することで、問題を解決しました(git-credential-osxkeychainはまったく必要ありません)。git remote set-url origin git@github.com:username/repo.git