# git-autosave Autosave for Git! `git-autosave` will push your changes to a custom ref on the `origin` remote whenever you make changes. This ref is not a branch, and it especially is not on the current branch. It will not appear in Codeberg or GitHub, but it will still be accessible to `git-autosave`. ## Build/Installation If you have Cargo installed, you can install `git-autosave` from source. ``` $ cargo install --git https://codeberg.org/botahamec/git-autosave.git ``` ## Usage To initialize a repository with `git-autosave`, run `git init-autosave` ``` $ git init-autosave Initialized autosave for repository: b0723f0e-df02-47dc-aac9-a5653f6a3a89 ``` This ID is unique to your instance of the repository. If you clone the repository to another device or directory, then you'll need to run `git init-autosave` again. To run a manual autosave, run `git autosave`. To restore from an autosave on another device, run `git restore-autosave`. This will pick an autosave automatically if there is only one option from another device for the same user. If you'd like more options, use `--all-branches`, `--all-users` and `--all-devices`. You can use `git diff-autosave` to preview an autosave before restoring it. To undo a `restore-autosave` operation, use `git undo-restore-autosave`. ### Background save **Important:** In order to allow `git-autosave` to automatically push to the remote over SSH, you'll need to have your SSH password saved either in your gnome-keyring or kdewallet or equivalent. The `scripts` subdirectory of this repository contains configurations for both systemd and runit which will run `git autosave-daemon` in the background. For systemd (most Linux systems), copy `scripts/git-autosave.service` into `~/.config/systemd/user/git-autosave.service`.