2012-11-26 45 views
1

我正在編寫一個shell腳本來自動更新git repos的幾個目錄,並且我想忽略沒有遠程起源的repos。到目前爲止,我有有git遠程目錄的條件

if git remote 2>&1 >/dev/null; then 

成功地確定目錄是否爲一個混帳回購協議。但是,對於任何新的git倉庫,

git remote 

回報「原點」和爲0的錯誤狀態如何我這樣的回購和回購,其中的命令git pull會做些什麼區別?

我可以用

git remote show origin 

但這將連接到源服務器如果存在的話,我寧願一個命令,就是快速的本地化。

回答

1

您總是可以檢查.git/config是否存在[remote "origin"]

#/bin/bash 
if grep -Fxq '[remote "origin"]' .git/config 
then 
    echo "yes" 
else 
    echo "no" 
fi 
+0

尼斯劈!似乎完美地工作。 –

0

如果存儲庫有一個起源,然後將文件夾.git/refs/remotes/origin必須存在。

test -d .git/refs/remotes/origin 

將返回0

+0

不一定可靠,因爲'git'在某些時候會決定開始使用packed refs而不是目錄層次結構。 – twalberg