Terraform 初始化错误:无法下载模块(本地更改将被覆盖)

Terraform 初始化错误:无法下载模块(本地更改将被覆盖)

我有一个全新的本地 Terraform 项目,刚刚从 gitlab 克隆出来。我没有对代码进行任何更改,但是运行时terraform init出现以下错误,该项目中的每个模块都会重复出现此错误:

Error: Failed to download module

Could not download module " <module name>"
(<filename>.tf:<line #>) source code from
"git::<gitlab address>":
error downloading
'<gitlab address>':
C:\Program Files\Git\cmd\git.exe exited with 1: error: Your local changes to
the following files would be overwritten by checkout:
        README.md
Please commit your changes or stash them before you switch branches.
Aborting

每个模块下载都会在同一个文件上失败:README.md。同样,我没有对项目中的任何文件进行任何更改。

我最初的想法是,这可能与行尾问题有关:我使用的是 Windows,而远程存储库中的模块文件是在 Mac 上创建的。为了解决这个问题,我运行了命令git config --global core.autocrlf true (遵循建议这里

然后我删除了 .terraform 文件夹并重新运行terraform init,但出现同样的错误。

我错过了什么?

答案1

似乎你遇到了同样的问题这里,这更像是 Git 行为,而不是 Terraform。尝试添加此 Github 问题中提到的短期解决方法(通过--depth在您的模块中添加source)。

但是,如果它连续运行多个 git 命令,从而加剧了这个问题,那么一个短期的解决方法(直到可以在 Git 中解决这个问题)可能是在源地址中设置查询参数depth=1,例如github.com/foo/bar?ref=v1.2.3&depth=1。在当前实现中,Terraform 通过运行 git clone --depth=1 --branch=v1.2.3 来实现浅克隆模式,这避免了单独签出步骤的需要,尽管我不记得 Git 是否会接受看起来像标签名称的内容作为此上下文中的有效 --branch=,或者它是否特别需要 refs/heads/... 引用。

相关内容