shell自动拉取远程仓库和部署代码

#!/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分支
posted @ 2023-07-13 18:15  Death-Satan  阅读(96)  评论(0编辑  收藏  举报