135 lines
5.9 KiB
Markdown
135 lines
5.9 KiB
Markdown
# Auto-Git
|
||
|
||
**Author:** Victor Giers
|
||
|
||
> ⚠️ **This README.md has been automatically generated using AI and might contain hallucinations or inaccuracies. Please proceed with caution!**
|
||
|
||
Auto-Git is a unique and interactive desktop application designed to help you manage your Git repositories with ease. It features a playful cat mascot that guides you through various Git operations, making the process more engaging and user-friendly.
|
||
|
||
---
|
||
|
||
## Features
|
||
|
||
- **Interactive Cat Mascot**: A cute cat character that provides feedback and assistance during Git operations.
|
||
- **Intelligent Committing**: Set thresholds for automatic committing based on file changes or time intervals.
|
||
- **README Generation**: Automatically generate `README.md` files for your repositories using AI models.
|
||
- **Folder Management**: Easily add, remove, and select Git folders to monitor.
|
||
- **Commit History**: View commit history with detailed diffs and options to revert or checkout commits.
|
||
- **Push to Gitea**: Push your commits directly to a Gitea server with ease.
|
||
- **Customizable Settings**: Adjust various settings such as sky mode, autostart, and commit thresholds.
|
||
|
||
---
|
||
|
||
## Prerequisites
|
||
|
||
Before installing Auto-Git, ensure that both **Git** and **Ollama** are installed and available in your system’s PATH:
|
||
|
||
1. **Git**
|
||
- Download and install from [https://git-scm.com/downloads](https://git-scm.com/downloads)
|
||
- Verify with:
|
||
```bash
|
||
git --version
|
||
```
|
||
|
||
2. **Ollama**
|
||
- Download and install from [https://ollama.com](https://ollama.com)
|
||
- Verify with:
|
||
```bash
|
||
ollama --version
|
||
```
|
||
|
||
---
|
||
|
||
## Installation
|
||
|
||
Download the latest release for your platform:
|
||
|
||
- **macOS (arm64)**
|
||
[Auto-Git 1.0.0 (macOS arm64).dmg](https://victorgiers.com/auto-git/Auto-Git-1.0.0-macOS-arm64.dmg)
|
||
|
||
- **Windows (x64)**
|
||
[Auto-Git 1.0.0 (Setup Windows x64).exe](https://victorgiers.com/auto-git/Auto-Git-1.0.0-Setup-Windows-x64.exe)
|
||
|
||
- **Windows (ARM64)**
|
||
[Auto-Git 1.0.0 (Setup Windows ARM64).exe](https://victorgiers.com/auto-git/Auto-Git-1.0.0-Setup-Windows-ARM64.exe)
|
||
|
||
*(Linux builds coming soon.)*
|
||
|
||
1. Download the appropriate installer for your system.
|
||
2. Run the installer and follow the on-screen instructions.
|
||
3. Launch **Auto-Git** from your applications menu (macOS) or Start menu (Windows).
|
||
|
||
---
|
||
|
||
## Usage
|
||
|
||
1. **Add a Folder**
|
||
- Click on **“Add Folder”** to select and add a Git repository to Auto-Git.
|
||
2. **Monitor Folders**
|
||
- Select a folder in the sidebar to monitor its changes and view commit history.
|
||
3. **Commit Changes**
|
||
- Auto-Git will automatically commit changes when thresholds are reached, or you can manually commit with a custom message.
|
||
4. **Generate README**
|
||
- Use the built-in AI integration to generate or update a `README.md` for any monitored repository.
|
||
5. **Push to Gitea**
|
||
- Configure your Gitea API key in **Settings**, then push commits directly from Auto-Git.
|
||
|
||
### Git safety behavior
|
||
|
||
- Starting monitoring establishes a baseline; changes that already existed are left untouched.
|
||
- Monitoring commits only paths reported by filesystem events. It never stages the whole repository.
|
||
- Build output and dependency folders such as `node_modules`, `dist-tauri`, and `src-tauri/target` are always excluded.
|
||
- Auto-Git refuses to commit when the index already contains staged work or when Git is rebasing, merging, resolving conflicts, or using a detached HEAD.
|
||
- Threshold- and timer-based commit-message rewrites run once in a temporary worktree and update the real branch atomically only after verifying that its tree is unchanged. They do not retain a duplicate history ref. The Reword button preference affects only that button, not scheduled rewrites.
|
||
- Commit history follows local branches, so **Jump Here** can navigate backward and forward while `HEAD` is detached. Jumping to a commit that is the unique tip of a local branch reattaches that branch.
|
||
- Starting monitoring reconciles Git changes already present in the working tree, including changes made while monitoring was paused, and commits only those reported paths through the normal guarded monitoring pipeline.
|
||
- Adding any folder immediately enables monitoring in the UI. Existing Git repositories start their watcher at once; non-repositories stay armed and attach the watcher automatically when **Init Repo** completes, without another Play click.
|
||
- Automatic stashing, forced checkout, rebase abort, and hard-reset recovery are not used by monitoring or commit-message rewriting.
|
||
- Commit squashing is temporarily disabled until it uses the same transactional worktree mechanism.
|
||
|
||
---
|
||
|
||
## Settings
|
||
|
||
- **Sky Mode**:
|
||
Toggle between light and dynamic themes that adjust color to the current sky color in your area.
|
||
- **Autostart**:
|
||
Enable or disable Auto-Git to start automatically on system boot.
|
||
- **Close to Tray**:
|
||
Minimize Auto-Git to the system tray instead of closing it completely.
|
||
- **Intelligent Commit Thresholds**:
|
||
Set file change or time-based thresholds for automatic commits.
|
||
- **AI Model Selection**:
|
||
- Default for commit message inference: `qwen2.5-coder:7b`
|
||
- Default for README generation: `qwen2.5-coder:32b`
|
||
- **Gitea API Key**:
|
||
Enter your Gitea API token to push repositories online with one click.
|
||
|
||
---
|
||
|
||
## Build from Source
|
||
|
||
If you want to build Auto-Git yourself, follow these steps:
|
||
|
||
1. Clone or download the repository to your local machine.
|
||
2. Install Node.js, npm, Rust, and the Tauri prerequisites for your operating system.
|
||
3. Open a terminal, navigate into the project folder, and run:
|
||
```bash
|
||
npm install
|
||
```
|
||
4. Run the app in development mode:
|
||
```bash
|
||
npm start
|
||
```
|
||
5. Build the Tauri distributables:
|
||
```bash
|
||
npm run dist
|
||
```
|
||
6. The output installers/packages will be located under `src-tauri/target/release/bundle/`.
|
||
|
||
---
|
||
|
||
## License
|
||
|
||
This project is licensed under the MIT License. See [LICENSE](LICENSE) for details.
|