2012-11-26 46 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