diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..cac08ebe9b94ff51f496897745799538dd061007
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,28 @@
+# Ignore ROS 2 build artifacts
+workspaces/**/build/
+workspaces/**/install/
+workspaces/**/log/
+
+# Ignore colcon and CMake temporary files
+colcon.meta
+colcon_release.meta
+CMakeLists.txt.user
+*.swp
+*.swo
+
+# Ignore Python cache and virtual environments
+workspaces/**/__pycache__/
+workspaces/**/*.pyc
+workspaces/**/.venv/
+workspaces/**/venv/
+
+# Ignore hidden system files (Mac & Linux)
+.DS_Store
+*.bak
+*.tmp
+
+# Ignore VS Code, CLion, and JetBrains IDE settings
+.vscode/
+.idea/
+workspaces/**/.vscode/
+workspaces/**/.idea/
\ No newline at end of file