繁体   English   中英

如何通过Shell脚本运行git命令?

[英]How can I run git commands via shell script?

我在服务器上有主存储库,并且有两个克隆。

我的本地上有一个克隆供编辑。 我服务器上公用文件夹中的另一个副本可拉出更改并实时查看。

我正在经历的当前例程是编辑本地->登录到服务器到公用文件夹,然后执行git pull来查看更新的更改。

我想使用git hooks“ post-receive” shell脚本更改为公用文件夹并执行git pull origin master ...我似乎无法弄清楚如何正确执行此操作。 我尝试使用以下方法:

cd /home/demo/public_html/example.com/public/ && `git status`

但是我得到的回报是“不是存储库”

但是,如果我运行cd /home/demo/public_html/example.com/public/ && ls

我将获取公用文件夹的内容(所以我要移到正确的位置)谢谢高级!

更新:

应该提到我正在尝试有无刻度

首先,在执行git pull或git status测试之前,尝试取消设置GIT_DIR env变量。

unset GIT_DIR

我想你想要这个:

cd /home/demo/public_html/example.com/public/ && git status

反引号用于捕获shell变量中命令的输出,例如:

x=`ls`

会将ls的输出放入变量x

您实际上是否在git status周围添加了反引号? 也就是说,您是在写cd ... && `git status`还是cd ... && git status吗? 如果您正在编写第一个命令,那么这样做是在评估git status命令,然后尝试将其结果解释为另一个要执行的命令。 删除反引号,您应该只得到git status的结果,而不是错误,因为它试图将其结果解释为命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM