git 添加 - 当唯一的错误是存在被忽略的文件时,我可以强制退出代码 0 吗?
git add - can I force exit code 0 when the only error is the presence of ignored files?
主要问题
推送自上次提交和推送以来的所有本地更改是使用 git 时经常使用的操作,因此将其用法优化到一个命令中可能会有好处,该命令将具有如下脚本它的 backbone:
git add * && git commit -m "my-message" && git push
但出于某种原因,这在我尝试使用它的回购协议中失败了。经过一番搜索,我发现使用 echo $?
当存在被忽略的文件时 git add *
returns 1. 这通常不是问题,因为它不会影响输入下一个命令,但在脚本中,能够自动决定是否继续是至关重要的。这个问题的明显解决方法是简单地使用
git add * || git commit -m "my-message" && git push
但我想避免这种情况,因为它会继续执行,即使 实际错误 发生在 git add
.
是否有配置选项(或任何其他解决方案)使 git 在添加命令中包含被忽略的文件但没有时报告退出代码 0发生其他错误?
PS
- 我知道 这 自动化不是一种非常明智的时间利用,那不是目的。
- 这只是失败代码的最简化版本,实际脚本不使用硬编码提交消息。
这是由于 *
被 Bash 扩展到当前目录中的所有非隐藏文件(默认情况下),并作为单独的参数传递给 git add
。 git
抱怨是因为其中一些明确命名的(就 git
而言)文件被忽略,因此该命令不明确。
git add .
将做基本相同的事情,唯一的例外是添加点文件,并且即使当前目录包含被忽略的文件,returns 退出代码 0。
主要问题
推送自上次提交和推送以来的所有本地更改是使用 git 时经常使用的操作,因此将其用法优化到一个命令中可能会有好处,该命令将具有如下脚本它的 backbone:
git add * && git commit -m "my-message" && git push
但出于某种原因,这在我尝试使用它的回购协议中失败了。经过一番搜索,我发现使用 echo $?
当存在被忽略的文件时 git add *
returns 1. 这通常不是问题,因为它不会影响输入下一个命令,但在脚本中,能够自动决定是否继续是至关重要的。这个问题的明显解决方法是简单地使用
git add * || git commit -m "my-message" && git push
但我想避免这种情况,因为它会继续执行,即使 实际错误 发生在 git add
.
是否有配置选项(或任何其他解决方案)使 git 在添加命令中包含被忽略的文件但没有时报告退出代码 0发生其他错误?
PS
- 我知道 这 自动化不是一种非常明智的时间利用,那不是目的。
- 这只是失败代码的最简化版本,实际脚本不使用硬编码提交消息。
这是由于 *
被 Bash 扩展到当前目录中的所有非隐藏文件(默认情况下),并作为单独的参数传递给 git add
。 git
抱怨是因为其中一些明确命名的(就 git
而言)文件被忽略,因此该命令不明确。
git add .
将做基本相同的事情,唯一的例外是添加点文件,并且即使当前目录包含被忽略的文件,returns 退出代码 0。