簡體   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