#!/bin/bash
# 定义一个函数
function check_and_update_code() {
# 获取本地提交标识
LOCAL=$(git rev-parse HEAD)
# 获取远程提交标识
REMOTE=$(git rev-parse origin/$1)
# 如果本地和远程不一致。则代表有更新了
if [ $LOCAL != $REMOTE ]; then
# 执行更新逻辑。
echo "Detected new code submission"
echo "Pulling the code..."
git checkout $1
git pull origin $1
echo "Restarting Server..."
else
# 没有更新
echo "No new commits."
fi
}
while true; do
# 调用函数 把$1传入进去
check_and_update_code $1
# 延迟十秒再执行
sleep 10
done
本质就是判断本地和远程的head。如果不一致就进行更新。
这是一个现成的脚本可以直接保存到服务器上为pull.sh
chmod +x pull.sh # 给脚本执行权限
sh pull.sh develop # 启动脚本并监听develop分支
标签:pull,code,sh,echo,git,shell,拉取,远程
From: https://www.cnblogs.com/death-satan/p/shell_auto_pull.html