私は時々コミットして、組織モードファイルをGitHubリポジトリと同期したままにする簡単なクローンタスクを作成しようとしています。何らかの理由で常にファイルをコミットしますが、git push
コマンドラインからスクリプトを実行しても出力が表示されます。
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 329 bytes | 329.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To github.com:my/repo.git
df98efb..0d4943b master -> master
git status
まだ押し付けなければならないと言っています。
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
これは私のスクリプトです。
#!/bin/sh
message="auto-commit from $USER@$(hostname -s) on $(date)"
GIT=`which git`
REPO_DIR=~/org
cd ${REPO_DIR}
${GIT} add --all .
${GIT} commit -m "$message"
${GIT} push [email protected]:my/repo.git master
私のcrontabでは、次のようになります。
* * * * * echo ["$(date)"] "$(echo "$(~/cron/scripts/org-commit.sh | tail -1)" | xargs)" >> ~/cron/log/org-commit.log 2>&1
で~/cron/log/org-commit.log
私はこれを見た:
[Wed Jun 12 16:44:00 CDT 2019] nothing to commit, working tree clean
[Wed Jun 12 16:45:00 CDT 2019] 1 file changed, 1 insertion(+)
最初の行は変更なしで走るときの位置、2行目は変更があるときの位置です。git push
対応するログ行は次のものに由来するため、実行されたことがないようですgit commit
。
この原因をどのように見つけることができますか?
ベストアンサー1
私はあなたの問題がgit push
実際に非同期だと思います。結果を変数に代入し、結果をエコーすると機能します。次の内容が期待する応答を出力する必要があります。
#!/bin/sh
message="auto-commit from $USER@$(hostname -s) on $(date)"
GIT=`which git`
REPO_DIR=~/org
cd ${REPO_DIR}
${GIT} add --all .
${GIT} commit -m "$message"
gitPush=$(${GIT} push -vvv [email protected]:my/repo.git master 2>&1)
echo "$gitPush"