Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Automates the initial commit for large projects. It uploads files in smaller, efficient batches instead of a single massive commit.

License

dougcostadev/auto-commit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Auto Commit (DAC)

Universal Git Commit Automation CLI Tool

npm version License: MIT Node.js

Intelligent batch commit system that automatically categorizes files by type, size, and importance for optimal Git performance.

πŸ€” What is this for?

Ever tried to run git add . on a massive, existing project for its first commit? It's slow, risky, and creates a single, unmanageable commit that's difficult to review or revert. DAC solves this problem.

It's specifically designed for the initial versioning of large-scale projects. By intelligently categorizing and batching your files, it transforms a daunting task into a series of small, fast, and organized commits. Get your big project onto Git efficiently and safely.

Note: This tool is for streamlining legitimate versioning, not for generating "fake" commits to inflate your contribution graph.

πŸš€ Quick Start

Installation

# Install globally via NPM
npm install -g @dougcostadev/auto-commit

# Or using Yarn
yarn global add @dougcostadev/auto-commit

# Or using pnpm
pnpm add -g @dougcostadev/auto-commit

Usage

# Navigate to any Git repository
cd your-project

# Initialize DAC configuration
dac init

# Run intelligent batch commits
dac run

# View repository statistics
dac stats

# Configure settings
dac config

πŸ“– Commands

dac init

Initialize DAC in your repository with interactive setup.

dac init                    # Interactive setup
dac init --force           # Force reinitialize
dac init --config <path>   # Custom config location

dac run

Execute intelligent batch commit automation.

dac run                     # Full automated processing
dac run --dry-run          # Preview without executing
dac run --type source web  # Process only specific types
dac run --batch-size 500   # Override batch sizes
dac run --skip-analysis    # Skip repository analysis

dac config

Manage DAC configuration settings.

dac config --list          # Show all settings
dac config --set key=value # Set configuration
dac config --get key       # Get specific value
dac config --reset         # Reset to defaults

dac stats

View repository and processing statistics.

dac stats                  # Basic statistics
dac stats --detailed       # Detailed analysis
dac stats --history        # Processing history

🎯 Features

🧠 Intelligent File Classification

  • 13 Categories: Binary, Media, Assets, Archives, Source, Web, Mobile, Database, Config, Docs, Data, System, Misc
  • 200+ Extensions: Comprehensive coverage of all major file types
  • Smart Detection: Advanced pattern matching and content analysis

πŸ“Š Interactive CLI Interface

  • Beautiful UI: Colorful, gradient interface with ASCII art
  • Progress Tracking: Real-time progress bars and file-by-file updates
  • Interactive Menus: Easy navigation and configuration
  • Error Handling: Graceful error recovery and user feedback

βš™οΈ Adaptive Configuration

  • Dynamic Batch Sizing: Automatically optimized based on file types and repository size
  • Custom Settings: Configurable batch sizes, file type priorities, and processing rules
  • GitHub Compliance: Respects 100MB file and ~1GB push limits
  • Project Detection: Automatic detection of project type (Web, Mobile, Game, etc.)

πŸ› οΈ Configuration

DAC creates a .dac.json configuration file in your repository:

{
  "version": "1.0.0",
  "batchSizes": {
    "binary": 50,
    "media": 75,
    "source": 800,
    "web": 1200,
    "docs": 2500
  },
  "excludePatterns": [
    "node_modules/**",
    ".git/**",
    "dist/**",
    "build/**"
  ],
  "commitMessage": {
    "template": "{type} - Batch {batch}/{total} ({count} files)",
    "useConventional": false
  },
  "processing": {
    "parallel": true,
    "maxConcurrency": 4,
    "retryFailedPushes": true,
    "skipLargeFiles": true
  }
}

🎨 Interface Preview

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β•β•β•β•
β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘     
β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘     
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β•šβ•β•β•β•β•β•  β•šβ•β•  β•šβ•β•  β•šβ•β•β•β•β•β•

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  πŸš€ Auto Commit v1.0.0                       β”‚
β”‚  Universal Git Commit Automation                   β”‚
β”‚  https://github.com/dougcostadev/auto-commit       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“Š Repository Analysis:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 🌐 web        β”‚  4,521 files β”‚  30% β”‚  4 batches    β”‚
β”‚ πŸ’» source     β”‚  3,245 files β”‚  21% β”‚  3 batches    β”‚
β”‚ πŸ“„ docs       β”‚  2,890 files β”‚  19% β”‚  2 batches    β”‚
β”‚ 🎨 media      β”‚  1,876 files β”‚  12% β”‚ 25 batches    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🎯 Repository Type: Web Development Project
⚑ Processing Strategy: Optimized for frontend files

πŸ”§ Development

Local Development

# Clone the repository
git clone https://github.com/dougcostadev/auto-commit.git
cd auto-commit

# Install dependencies
npm install

# Build TypeScript
npm run build

# Run locally
npm run dev

# Test the CLI
npm link
dac --help

Testing

npm test              # Run tests
npm run lint          # Check code style
npm run format        # Format code

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Support


Made with ❀️ by Douglas Costa

⭐ Star this repository if it helps you! ⭐

About

Automates the initial commit for large projects. It uploads files in smaller, efficient batches instead of a single massive commit.

Resources

License

Stars

Watchers

Forks

Packages

No packages published