我正在创建一个将Django应用程序部署到远程服务器的部署脚本。这是通过将git存储库推送到该远程服务器来完成的。为了让其他开发人员尽可能轻松,我试图通过一项艰巨的任务尽可能地自动化。 grunt任务的最终目标是设置所需的一切,推送到远程存储库,然后自行清理。
到目前为止,除了一件小事之外,一切似乎都运作良好。为了设置远程存储库,我打电话给:
git remote add deploy ssh://<ServerUsername>@<serverIp><RepositoryDirectory>
...其中每个值都被正确替换。
第二次运行grunt任务时,git抱怨已经设置了远程存储库:
fatal: remote deploy already exists.
因为这会返回非零值,所以grunt脚本的其余部分将失败。我想知道的是:是否有任何类型的命令行参数,我可以传递给“git remote ...”,它将更新或创建对远程存储库的引用而不抱怨?除此之外,有没有办法通过命令行检查是否已经创建了对远程git存储库的特定引用?
答案 0 :(得分:1)
一个简单的解决方案是继续使用url而不是远程。在bash中它意味着替换
myRemote=ssh://<ServerUsername>@<serverIp><RepositoryDirectory>
git remote add deploy $myRemote
git push deploy master
通过
myRemote=ssh://<ServerUsername>@<serverIp><RepositoryDirectory>
git push $myRemote master
话虽这么说,如果你只想添加遥控器,如果它还不存在,你可以用bash
if ! git remote | grep deploy >/dev/null; then
git remote add deploy $myRemote
fi