git push 脚本,仅当存在差异时

git push 脚本,仅当存在差异时

我发现了一些很好的问题,说明了如何编写一个git push/pull使用 cron自动化的脚本这里这里,但我想稍微详细说明一下。我只想在当天发生更改时推送/拉取。

我基本上希望脚本检查源和此存储库之间的差异日志,并且仅在有更改时才推送或拉取。我对 bash 和 git 不是很熟悉,所以我真的不知道从哪里开始,否则我会粘贴我迄今为止尝试过的内容。

感谢您的任何帮助或指导。

答案1

git pushgit pull仅当存在差异时才更改文件。

git add --all如果您在没有任何变化时尝试,它不会添加任何内容,后续操作git commit -m ""git push不会产生任何效果。

您引用的脚本应该可以正常工作。

如果您想要进行额外的检查,您可以在合并本地文件git remote update之前git diff查看差异。

答案2

#!/bin/bash 
cd projectdir
git add .
set +e  # Grep succeeds with nonzero exit codes to show results.
git status | grep modified
if [ $? -eq 0 ]
then
    set -e
    git commit -am "updated on - $(date)"
    git push
else
    set -e
    echo "No changes since last run"
fi

相关内容