Backup your repository at configured intervals
demo.mp4
- highly configurable
- 0 external dependencies (except git)
- backup with the help of git, every interval
- inspired by obsidian-git and its automatic backup system
- alternative to obsidian git that does not require obsidian and is faster
- sane defaults
- JSON based configuration
XGS is a lot more minimal and configurable than git-auto-sync, doesn't require obsidian or VScode to work (Obsidian Git, VS Code GitDoc) and isn't as complicated or unintelligible as Git Annex or Git Sync.
Alternatives:
Requires:
- go
git clone https://github.com/xnacly/x-git-sync xgs
cd xgs
go build
./xgs # unix
xgs.exe # windows
- download executable from latest release
- move the
xgs
-executable to a directory in the path, for linux:mv ./xgs /usr/bin
(this might require elevated privileges)
Prerequisites:
-
git needs to be installed, xgs will panic if it isn't
- projects needs to be a git repository with a remote set up
- git user needs be authenticated to the remote
- you should be able to run the following commands in your project without issues before using xgs in it:
git add -A
git commit -m "test"
git push
- you can now use xgs in your project
- Navigate to the git project you want to backup
- run
xgs
in your terminal
If you have no
xgs.json
, xgs will use its default configuration.
- On Unix systems,
$XDG_CONFIG_HOME/xgs.json
or$HOME/.config/xgs.json
- On Darwin,
$HOME/Library/Application Support/xgs.json
- On Windows,
%AppData%/xgs.json
- On Plan 9,
$home/lib/xgs.json
If xgs can't find its config file (xgs.json
) it will fallback to its default config: