Linux Git推送将并行副本发送到测试服务器
当我启动“gitpush”命令时,我搜索将文件复制到“test”主机的方法Linux Git推送将并行副本发送到测试服务器,linux,git,Linux,Git,当我启动“gitpush”命令时,我搜索将文件复制到“test”主机的方法 Git版本:2.20.1听起来你在试图(重新)发明CI/CD。 如果您将GitHub或GitLab用作远程服务器,则可以使用GitHub中的管道(或操作)。 在那里,您可以定义(几乎)推送后想要发生的任何事情,我假设您的Host\u测试可以在线访问 如果您正在运行自己的git服务器 您可以使用post-receivehook实现“推送部署”。钩子是放置在.git/Hooks中的脚本,在git命令的精确阶段执行。您可以在.
Git版本:2.20.1听起来你在试图(重新)发明CI/CD。 如果您将GitHub或GitLab用作远程服务器,则可以使用GitHub中的
管道
(或操作
)。
在那里,您可以定义(几乎)推送后想要发生的任何事情,我假设您的Host\u测试可以在线访问
如果您正在运行自己的git服务器
您可以使用post-receive
hook实现“推送部署”。钩子是放置在.git/Hooks
中的脚本,在git命令的精确阶段执行。您可以在.git/hook
中找到几个示例实现。有关更多信息,请参见此处:
以防您无法访问自己的git服务器
您可以在本地计算机上使用预推
脚本,但这不是一个好主意
这个钩子是在执行gitpush
之后执行的,但是在git
实际推送任何东西之前执行的。如果脚本失败(即非零返回代码),它将不会推送。
另外,如果您的脚本成功地进行了复制,但随后git
推送失败,那么您将最终测试不在repo中的代码
如果这一切听起来太复杂了
您可以创建一个同时执行这两种操作的bash函数,并将其添加到.bashrc
中
以下是一个例子:
push_copy() {
if git push
then
# Copy for command here: scp ...
else
echo "Failed..."
fi
}
在REPO_服务器
上使用一个或在测试
服务器上创建一个裸REPO。这称为推送部署:。这样地:
push_copy() {
if git push
then
# Copy for command here: scp ...
else
echo "Failed..."
fi
}