首页 > 解决方案 > git add - 当唯一的错误是存在被忽略的文件时,我可以强制退出代码 0 吗?

问题描述

主要问题

推送自上次提交以来的所有本地更改,并且推送是使用 git 时非常常用的操作,因此将其使用优化为一个命令可能是有益的,该命令将以这样的脚本作为其主干:

git add * && git commit -m "my-message" && git push

但是由于某种原因,这在我尝试使用它的 repo 中失败了。经过一番搜索,我发现echo $?当存在被忽略的文件时使用它会git add *返回 1。这通常不是问题,因为它不会影响输入下一个命令,但在脚本中,能够自动决定是否继续是至关重要的。这个问题的明显解决方法是简单地使用

git add * || git commit -m "my-message" && git push

但我想避免这种情况,因为即使实际错误发生在git add.

当添加命令中包含被忽略的文件但没有发生其他错误时,是否有配置选项(或任何其他解决方案)使 git报告退出代码为 0

附言

标签: bashgitscripting

解决方案


这是由于*被 Bash 扩展为当前目录中的所有非隐藏文件(默认情况下)并作为单独的参数传递给git add. git抱怨是因为其中一些明确命名的(据git我所知)文件被忽略了,所以命令是模棱两可的。

git add .将做基本相同的事情,唯一的例外是添加点文件,即使当前目录包含被忽略的文件,也会返回退出代码 0。


推荐阅读