diff --git a/.gitignore b/.gitignore
index 543eccd8b80652582d693ee7dcae6f346558980d..d4d5a9d446b167107a34a0d841442c0938920e60 100644
--- a/.gitignore
+++ b/.gitignore
@@ -64,9 +64,3 @@ posix-configs/SITL/init/test/*_generated
 *.gcov
 .coverage
 .coverage.*
-
-.vscode/.cortex-debug.peripherals.state.json
-.vscode/.cortex-debug.registers.state.json
-.vscode/compile_commands.json
-.vscode/ipch/
-
diff --git a/.vscode/.gitignore b/.vscode/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..1ea7f74304eb7d1df6e5d101303ff92d9b0a3ed2
--- /dev/null
+++ b/.vscode/.gitignore
@@ -0,0 +1,6 @@
+.cortex-debug.peripherals.state.json
+.cortex-debug.registers.state.json
+compile_commands.json
+
+# C/C++ extension does some local caching in this folder
+ipch/