我正在编写一个迁移 bash 脚本,用于将使用 gitLFS 的存储库从 Github 迁移到 Gitlab。
其中一步是检查源和目标存储库是否存在。
经过我的搜索,我发现它git ls-remote
是完美的。
对于我的脚本,我想使命令的输出静音(脚本本身稍后会检查它),所以我使用$> /dev/null
类似
git ls-remote -q <URL to repository> $> /dev/null
-q
,--quiet
:不要将远程 URL 打印到 stderr。
成功时我不会得到任何输出并git ls-remote
退出0
。
失败时(可能是由于提供了不正确的凭据或找不到存储库导致的)它会退出,128
但我总是看到这个输出
remote: Invalid username or password.
fatal: Authentication failed for '<URL to repository>'
或者
remote: Repository not found.
fatal: repository '<URL to repository>' not found
我怎样才能彻底保持沉默git ls-remote
?
答案1
如果要将所有输出和 stderr 重定向到 /dev/null,则必须替换
git ls-remote -q <URL to repository> $> /dev/null
经过
git ls-remote -q <URL to repository> &> /dev/null
(&代替$)