diff --git a/packages/flutter_tools/lib/src/plugins.dart b/packages/flutter_tools/lib/src/plugins.dart
index 12456fd..3a72c95 100644
--- a/packages/flutter_tools/lib/src/plugins.dart
+++ b/packages/flutter_tools/lib/src/plugins.dart
@@ -317,7 +317,8 @@
 /// otherwise returns [false].
 bool _writeFlutterPluginsList(FlutterProject project, List<Plugin> plugins) {
   final List<dynamic> directAppDependencies = <dynamic>[];
-  final StringBuffer flutterPluginsBuffer = StringBuffer();
+  const String info = 'This is a generated file; do not edit or check into version control.';
+  final StringBuffer flutterPluginsBuffer = StringBuffer('# $info\n');
 
   final Set<String> pluginNames = <String>{};
   for (Plugin plugin in plugins) {
@@ -334,7 +335,7 @@
   final File pluginsFile = project.flutterPluginsFile;
   final String oldPluginFileContent = _readFileContent(pluginsFile);
   final String pluginFileContent = flutterPluginsBuffer.toString();
-  if (pluginFileContent.isNotEmpty) {
+  if (pluginNames.isNotEmpty) {
     pluginsFile.writeAsStringSync(pluginFileContent, flush: true);
   } else {
     if (pluginsFile.existsSync()) {
@@ -345,9 +346,10 @@
   final File dependenciesFile = project.flutterPluginsDependenciesFile;
   final String oldDependenciesFileContent = _readFileContent(dependenciesFile);
   final String dependenciesFileContent = json.encode(<String, dynamic>{
+      '_info': '// $info',
       'dependencyGraph': directAppDependencies,
     });
-  if (pluginFileContent.isNotEmpty) {
+  if (pluginNames.isNotEmpty) {
     dependenciesFile.writeAsStringSync(dependenciesFileContent, flush: true);
   } else {
     if (dependenciesFile.existsSync()) {
diff --git a/packages/flutter_tools/test/general.shard/plugins_test.dart b/packages/flutter_tools/test/general.shard/plugins_test.dart
index 5d35408..0a84b8c 100644
--- a/packages/flutter_tools/test/general.shard/plugins_test.dart
+++ b/packages/flutter_tools/test/general.shard/plugins_test.dart
@@ -273,6 +273,7 @@
         expect(flutterProject.flutterPluginsFile.existsSync(), true);
         expect(flutterProject.flutterPluginsDependenciesFile.existsSync(), true);
         expect(flutterProject.flutterPluginsFile.readAsStringSync(),
+          '# This is a generated file; do not edit or check into version control.\n'
           'plugin-a=/.tmp_rand0/plugin.rand0/\n'
           'plugin-b=/.tmp_rand0/plugin.rand1/\n'
           'plugin-c=/.tmp_rand0/plugin.rand2/\n'
@@ -280,6 +281,7 @@
         );
         expect(flutterProject.flutterPluginsDependenciesFile.readAsStringSync(),
           '{'
+            '"_info":"// This is a generated file; do not edit or check into version control.",'
             '"dependencyGraph":['
               '{'
                 '"name":"plugin-a",'
