.bashrc 导致 git Push 失败

.bashrc 导致 git Push 失败

我尝试使用 git 将代码推送到远程服务器,但收到错误:

fatal: protocol error: bad line length character:
  8

我研究了这个错误,结果发现我的.bashrc文件回显欢迎屏幕导致了这个错误。我想做的是确定这是否是 git Push 并且不显示欢迎屏幕,或者仅在不带目录参数登录 SSH 时显示屏幕:

ssh [email protected]:/deployment/bare-git-repo

以下是相关行.bashrc

if [ -e ./.doc ]
then
    cat ./.doc
    pm2 list
fi

提前致谢!

答案1

git push我认为服务器上没有任何特定于您可以使用的挂钩的内容,但您可以检查是否正在输出到终端:

if [ -t 1 ] && [ -e ./.doc ]; then
    cat ./.doc
    pm2 list
fi

这将处理许多其他情况,在这些情况下,输出内容./.doc没有多大作用,并且可能会导致问题。

答案2

我怀疑您真正想做的是阻止运行那些在非交互式 shell 中没有业务运行的东西。

对此的常见策略是检查 stdin 是否未通过 附加到终端[[ ! -t 1 ]],或者检查 bash 进程是否未通过 标记为交互式[[ $- != *i* ]]。如果这些失败案例之一的计算结果为 true,那么 bashrc 中的任何其他内容都不应被执行,您应该尽早返回。

相关内容