我正在编写一个 shell 脚本来自动更新 git 存储库的几个目录,我想忽略没有远程源可以从中提取的存储库。到目前为止,我有
if git remote 2>&1 >/dev/null; then
成功确定目录是否为 git 存储库。但是对于任何新的 git 存储库,
git remote
返回"origin"和错误状态 0。如何区分此类存储库和命令git pull
将执行某些操作的存储库?
我可以使用
git remote show origin
但这将连接到源服务器(如果存在),我更喜欢快速和本地的命令。
您可以随时检查.git/config
是否存在[remote "origin"]
?
#/bin/bash
if grep -Fxq '[remote "origin"]' .git/config
then
echo "yes"
else
echo "no"
fi
如果存储库具有源,则文件夹.git/refs/remotes/origin
必须存在。
test -d .git/refs/remotes/origin
将返回 0。