Skip to content

Latest commit

Β 

History

History
307 lines (250 loc) Β· 5.91 KB

File metadata and controls

307 lines (250 loc) Β· 5.91 KB

Git Setup Guide for Paddle Decoder

πŸš€ Quick Start

Initialize Git Repository

cd /home/developer/rust/paddle_decoder_cross_platform
git init
git add .
git commit -m "Initial commit: CW paddle decoder with training modes"

πŸ“‹ What Gets Committed

βœ… Source Files (COMMITTED)

src/
β”œβ”€β”€ main.rs
β”œβ”€β”€ cw_academy_training.rs
└── morse_player.rs

βœ… Configuration (COMMITTED)

Cargo.toml
.cargo/config.toml
.gitignore

βœ… Documentation (COMMITTED)

README.md
QUICKSTART.md
BUILD_*.md
TRAINING_MODE_ADDED.md
LISTENING_MODE_GUIDE.md
RANDOM_BLOCKS_GUIDE.md
*.md (all documentation)

βœ… Build Scripts (COMMITTED)

build_all_platforms.sh
build_linux.sh
build_macos.sh
build_windows.sh
*.sh (all scripts)
*.ps1 (PowerShell scripts)

βœ… Arduino Files (COMMITTED)

*.ino
INO_README.md

🚫 What Gets Ignored

❌ Build Artifacts (IGNORED)

target/                  # All Rust compilation
Cargo.lock              # Lock file
paddle_decoder*         # Compiled binaries
*.exe                   # Windows executables
release/*.zip           # Release archives

❌ OS Files (IGNORED)

.DS_Store              # macOS
Thumbs.db              # Windows
*~                     # Linux backups

❌ IDE Files (IGNORED)

.vscode/               # VSCode
.idea/                 # IntelliJ
*.swp                  # Vim

πŸ” Check Before Committing

See what will be committed:

git status

See ignored files:

git status --ignored

Check specific file:

git check-ignore -v target/
# Should show: .gitignore:2:target/    target/

πŸ“ Recommended First Commit

# Initialize repo
git init

# Add all source files
git add .

# Check what's staged
git status

# Make initial commit
git commit -m "Initial commit: Paddle Decoder v1.0

Features:
- CW Academy training mode (Sessions 1-10)
- Listening practice with feedback
- Random blocks training mode
- Cross-platform support (Linux, Windows, macOS)
- MIDI paddle input support
- Audio tone generation
- Morse code decoder

Includes:
- Complete source code
- Build scripts for all platforms
- Comprehensive documentation
- Training guides and examples"

🌐 Add Remote (Optional)

GitHub:

git remote add origin https://github.com/yourusername/paddle-decoder.git
git branch -M main
git push -u origin main

GitLab:

git remote add origin https://gitlab.com/yourusername/paddle-decoder.git
git branch -M main
git push -u origin main

πŸ“Š Repository Size Estimate

With .gitignore (RECOMMENDED):

Source code:        ~50 KB
Documentation:      ~200 KB
Build scripts:      ~20 KB
Configuration:      ~5 KB
─────────────────────────
Total:             ~275 KB  βœ… Small and clean!

Without .gitignore (NOT RECOMMENDED):

Everything above:   ~275 KB
target/ folder:     ~500 MB  ❌
Binaries:           ~25 MB   ❌
OS files:           ~1 MB    ❌
─────────────────────────
Total:             ~526 MB  ❌ Way too large!

🎯 Best Practices

DO:

βœ… Commit source code (.rs files) βœ… Commit documentation (.md files) βœ… Commit build scripts (.sh, .ps1) βœ… Commit configuration (Cargo.toml) βœ… Commit .gitignore file βœ… Write descriptive commit messages

DON'T:

❌ Commit target/ folder ❌ Commit compiled binaries ❌ Commit Cargo.lock (for libraries, keep for binaries) ❌ Commit IDE settings ❌ Commit OS-specific files ❌ Commit temporary files

πŸ”§ Useful Git Commands

Check status:

git status
git status --short
git status --ignored

Add files:

git add .                    # Add all (respects .gitignore)
git add src/                 # Add specific folder
git add *.md                 # Add documentation

Commit:

git commit -m "Your message"
git commit -am "Add and commit"

View history:

git log
git log --oneline
git log --graph --oneline --all

Undo changes:

git checkout -- file.txt     # Discard changes
git reset HEAD file.txt      # Unstage file
git reset --soft HEAD^       # Undo last commit

🏷️ Recommended Tags

After committing, create version tags:

git tag -a v1.0.0 -m "Version 1.0.0
- Initial release
- CW Academy training mode
- Listening practice
- Random blocks mode"

git tag -a v1.1.0 -m "Version 1.1.0
- Added feature X
- Fixed bug Y"

# Push tags
git push origin --tags

πŸ“¦ Release Management

Create release branch:

git checkout -b release/v1.0
./build_all_platforms.sh
# Upload binaries to GitHub Releases

Use GitHub Releases:

  1. Go to GitHub repository
  2. Click "Releases" β†’ "Create new release"
  3. Tag version (e.g., v1.0.0)
  4. Upload compiled binaries:
    • paddle_decoder_linux_amd64
    • paddle_decoder_win64_gnu.exe
    • paddle_decoder_x86_64_macOS
    • etc.
  5. Write release notes
  6. Publish

πŸ› Troubleshooting

Accidentally committed large files:

git rm --cached target/
git commit -m "Remove target folder"

Clean untracked files:

git clean -n              # Dry run (see what would be deleted)
git clean -f              # Delete untracked files
git clean -fd             # Delete untracked files and directories

See ignored files:

git status --ignored
git ls-files --ignored --exclude-standard

Check if file is ignored:

git check-ignore -v paddle_decoder_linux_amd64
# Output: .gitignore:10:paddle_decoder_linux_amd64

πŸ“š Additional Resources


Ready to start? Just run:

cd /home/developer/rust/paddle_decoder_cross_platform
git init
git add .
git commit -m "Initial commit"

73! πŸ“»