我在 Centos 5.5 机器上有 gitolite - 当更新存储库时,我需要向我的错误跟踪设备发送命令以获取新命令。现在,我可以使用以下命令:
ssh bugserver -f 'cd /etc/repos/gitrepo && git pull origin prod && exit'
不过,这似乎有点肮脏。有没有更好的方法来执行此同步?
答案1
将其放入 Makefile 中。
sync:
↹ssh bugserver -f 'cd /etc/repos/gitrepo && git pull origin prod && exit'
然后运行它。
$ make sync
请注意,这↹
实际上是一个制表符。请参阅编辑器的文档以了解如何输入它(但CtrlVTab可能有效)。
答案2
您也许可以使用脚本编写一些东西预计,但是对于这么简单的事情来说可能过于复杂了。我过去曾使用它来登录远程电源开关并循环给定端口,因此我相信您也可以将它用于此应用程序。
答案3
这里有两个额外的解决方案,都假设您使用的是 bash shell。第一个是创建一个函数来执行任务,将该函数放置在 ~/.bashrc 文件中:
function bugsync() {
ssh bugserver -f 'cd /etc/repos/gitrepo && git pull origin prod'
}
第二种是创建别名:
alias bugsync="ssh bugserver -f 'cd /etc/repos/gitrepo && git pull origin prod'"
请注意,您不需要指定命令的“&& exit”部分。
答案4
在考虑了这些选项之后,我决定修改该命令(删除&& exit
)并保留原样以便简单起见。