Essential commands using modern Git syntax
my-application/ ├── .git/ # Git repository metadata ├── app.py # Main application entry point ├── modules/ # Core application modules (required for running) │ ├── __init__.py │ ├── core.py │ └── utils.py ├── resources/ # Application resources (icons, configs, data files) │ ├── icons/ │ └── config.json ├── development/ # All development-related files │ ├── tests/ # Unit and integration tests (tracked by Git) │ │ ├── test_core.py │ │ └── test_utils.py │ ├── docs/ # Technical documentation (tracked by Git) │ │ ├── architecture.md │ │ └── api_reference.md │ ├── build_tools/ # Deployment/packaging scripts (tracked by Git) │ │ ├── deploy.py │ │ └── package.py │ ├── requirements-dev.txt # Development dependencies (tracked by Git) │ └── local/ # Personal files, experiments (NOT tracked) │ ├── my_notes.txt │ ├── test_data.csv │ └── scratch.py ├── requirements.txt # Production dependencies only ├── README.md # User-facing documentation └── .gitignore # Git ignore rules
development/local/ - they will never be committeddevelopment/tests/, development/docs/ - these ARE committed# Python cache and compiled files __pycache__/ *.py[cod] *$py.class *.so # Virtual environments env/ venv/ .venv/ ENV/ # IDE and editor files .vscode/ .idea/ *.swp *.swo *~ # Operating system files .DS_Store Thumbs.db # Application temporary files *.log *.tmp cache/ temp/ # Build artifacts dist/ build/ *.egg-info/ # Personal development files (NOT tracked by Git) development/local/ # Any other generated files specific to your application output/
vMAJOR.MINOR.PATCH formatv1.0.0 - Initial releasev1.1.0 - Added new feature (minor update)v1.1.1 - Fixed bug (patch)v2.0.0 - Major rewrite with breaking changes
# === Initial Setup === git init git add . git commit -m "Initial commit" git switch -c develop # === Week 1: Adding new feature === git switch -c feature/gui-improvements # ... make changes ... git add . git commit -m "Add dark theme to GUI" git switch develop git merge feature/gui-improvements git branch -d feature/gui-improvements # === Week 2: Bug fix === git switch -c bugfix/calculation-error # ... fix bug ... git add . git commit -m "Fix division by zero error" git switch develop git merge bugfix/calculation-error git branch -d bugfix/calculation-error # === Week 3: Ready for release === git switch main git merge develop git tag -a v1.0.0 -m "Release v1.0.0 - Stable version with GUI and fixes" # === Critical production hotfix === git switch -c hotfix/critical-bug # ... fix bug ... git add . git commit -m "Fix critical security issue" git switch main git merge hotfix/critical-bug git tag -a v1.0.1 -m "Hotfix v1.0.1 - Security patch" git switch develop git merge hotfix/critical-bug # Apply fix to develop too git branch -d hotfix/critical-bug