【问题标题】:Git push send parallel copy to test serverGit push 发送并行副本到测试服务器
【发布时间】:2021-05-19 14:09:18
【问题描述】:

我在启动“git push”命令时搜索将文件复制到“测试”主机的方法。

git push   ------- TO REPO --> REPO_SERVER
           \
            \_________ TO DIR --> Host_TEST

Git 版本:2.20.1

【问题讨论】:

标签: linux git


【解决方案1】:

听起来您正在尝试(重新)发明 CI/CD。 如果您使用 GitHub 或 GitLab 作为远程服务器,您可以使用 Pipelines(或 GitHub 中的 Actions)。 在那里你可以定义(几乎)任何你想要在推送后发生的事情,我假设你的Host_TEST 可以在线访问。

如果您正在运行自己的 git 服务器
您可以使用post-receive 挂钩实现“推送部署”。钩子是放置在.git/hooks 中并在 git 命令的精确阶段执行的脚本。您可以在.git/hook 中找到几个示例实现。更多信息请看这里:Setting up Push-to-Deploy with git

如果您无权访问自己的 git 服务器
您可以在本地计算机上使用 pre-push 脚本,但这是个坏主意
这个钩子在你执行 git push 之后但在 git 实际推送任何东西之前执行。如果您的脚本失败(即非零返回码),它将不会推送。 此外,如果您的脚本设法复制但 git 无法推送,您最终将测试不在您的仓库中的代码。

如果这听起来太复杂了
您可以创建一个执行这两种操作的 bash 函数并将其添加到您的 .bashrc

这是一个例子:

push_copy() {
   if git push
   then 
      # Copy for command here: scp ...
   else
     echo "Failed..."
   fi
}

【讨论】:

    猜你喜欢
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 2023-03-16
    • 2014-04-04
    相关资源
    最近更新 更多