A lightweight Visual Studio Code extension to simplify and accelerate common Git workflows with intuitive commands, progress indicators, and commit history management.
Features
Quick Git Commands: Execute Git operations like fetch, pull, add, commit, push, and branch deletion with minimal effort.
Commit History: Save and reuse previous commit messages for faster commits.
Progress Feedback: Visual progress indicators during Git operations.
Notifications: Get desktop notifications when operations complete.
Customizable: Configurable intervals, increments, and commit history size.
Branch Management: Easily delete local and remote branches with a simple UI.
Installation
Install via VS Code Marketplace (Recommended):
Search for Git Fast in the VS Code Extensions view (Ctrl+Shift+X or Cmd+Shift+X on macOS).
Click Install.
Manual Installation:
Clone or download this repository.
Run npm install in the project root to install dependencies.
Package the extension using vsce package (requires vsce installed globally: npm install -g @vscode/vsce).
Install the resulting .vsix file in VS Code via the Extensions view (... > Install from VSIX).
Usage
Available Commands
Select All and Commit (git-fast.selectAllAndCommit):
Stages all uncommitted changes, commits them with a custom message, and pushes to the remote repository.
Run via the Command Palette (Ctrl+Shift+P or Cmd+Shift+P on macOS) and search for Git Fast: Select All and Commit.
Commit and Push (git-fast.CommitAndPush):
Commits staged changes with a custom message and pushes to the remote repository.
Run via the Command Palette and search for Git Fast: Commit and Push.
Fetch and Pull (git-fast.PullFetch):
Fetches all updates from the remote repository and pulls changes.
Run via the Command Palette and search for Git Fast: Fetch and Pull.
Delete Branch (git-fast.delete):
Lists all local and remote branches and allows deletion.
Run via the Command Palette and search for Git Fast: Delete Branch.
Commit Message Workflow
When committing, a Quick Pick menu shows previous commit messages for reuse.
You can edit the selected message or enter a new one.
Default commit messages are generated with a timestamp if none is provided (e.g., chore: update code DD-MM-YYYY HH-mm-ss).
Progress Indicators
During Git operations, a progress bar appears in the VS Code notification area.
Operations can be canceled if needed.
Notifications
Desktop notifications are displayed upon completion of Git operations using node-notifier.
Configuration
The extension uses the following default configuration values, which are currently hardcoded but can be adjusted in the source code (CONFIG object):
INCREMENT: Progress bar increment (default: 0.2).
INTERVAL: Progress update interval in milliseconds (default: 60).
NOTIFICATION_TIMEOUT: Duration of notifications in milliseconds (default: 1000).
MAX_COMMIT_HISTORY: Maximum number of commit messages stored (default: 10).
Future updates may allow these to be configured via VS Code settings.
Requirements
VS Code: Version 1.60.0 or higher.
Git: Must be installed and accessible from the command line.
Node.js: Required for development and packaging (node-notifier dependency).
Extension Development
Prerequisites
Node.js and npm installed.
VS Code installed.
vsce for packaging (install via npm install -g @vscode/vsce).
Build and Test
Clone the repository.
Run npm install to install dependencies.
Open the project in VS Code.
Press F5 to launch a new VS Code instance with the extension loaded.
Test commands via the Command Palette.
Packaging
Run vsce package to create a .vsix file.
Install the .vsix file in VS Code or publish to the marketplace.
Known Issues
If no workspace folder is open, the extension will show an error.
Git commands may fail if the repository is not properly initialized or if there are permission issues.
The extension assumes git is available in the system PATH.
Contributing
Contributions are welcome! Please follow these steps:
Fork the repository.
Create a new branch (git checkout -b feature/your-feature).
Make your changes and commit (git commit -m "Add your message").
Push to your fork (git push origin feature/your-feature).
Open a pull request.
License
This project is licensed under the MIT License. See the LICENSE file for details.