更新:
您可能希望从 git 提交中忽略它们的一个原因是,当您不希望它们显示在正在代码审查的拉取请求中时。在这种情况下,您会忽略项目中 git commit 生成的文件。
TLDR:
如果您将生成的文件添加到您的 git 提交中,然后遇到任何问题(您很少这样做),您需要做的就是使用标志 --delete-conflicting-outputs 运行 build_runner
flutter packages pub run build_runner build --delete-conflicting-outputs
将生成的文件添加到 Git 提交的问题以及如何处理它们
提到的build_runnerdocumentation 不将生成的文件添加到您的 git 提交不是一个好点。稍后我会说原因。
添加生成文件的重点不是每次执行 git pull 时都必须运行 build_runner,因为源文件已更改或您的开发人员已添加新的源文件,您需要运行 build_runner 来创建源文件,以便能够无错误地运行代码。
但是如果您决定将生成的代码添加到您的 git 提交中会发生什么?以及如何轻松解决它们。
第一个问题是您可能会在生成的文件中遇到合并冲突。现在你怎么处理这个。 你没有。此时,您只需解决源文件中的冲突(如果有),然后运行 build_runner,将再次生成生成的文件。
另一个问题是builder_runnerdocs 中提到的问题。当你运行 build_runner 时,它会给你这个错误
C:\workspace\flutter\projects> flutter pub run build_runner build
[INFO] Generating build script...
[INFO] Generating build script completed, took 336ms
[WARNING] Deleted previous snapshot due to missing asset graph.
[INFO] Creating build script snapshot......
[INFO] Creating build script snapshot... completed, took 12.5s
[INFO] Initializing inputs
[INFO] Building new asset graph...
[INFO] Building new asset graph completed, took 787ms
[INFO] Checking for unexpected pre-existing outputs....
[INFO] Found 13 declared outputs which already exist on disk. This is likely because the`.dart_tool/build` folder was deleted, or you are submitting generated files to your source repository.
[SEVERE] Conflicting outputs were detected and the build is unable to prompt for permission to remove them. These outputs must be removed manually or the build can be run with `--delete-conflicting-outputs`. The outputs are: lib/models/advisory-service-item.g.dart
您可以在运行 build_runner 时轻松解决购买添加 --delete-conflicting-outputs 标志的问题。就像我们已经做过很多次一样
flutter packages pub run build_runner build --delete-conflicting-outputs
因此,对于任何一个问题,您都可以运行上述命令,就是这样