A powerful community plugin for Obsidian.md that brings Git integration right into your vault. Automatically commit, pull, push, and see your changes — all within Obsidian.
All setup instructions (including mobile), common issues, tips, and advanced configuration can be found in the 📖 full documentation.
👉 Mobile users: The plugin is highly unstable ⚠️ ! Please check the dedicated Mobile section below.
Open source control view command.Open history view command.Open diff view command.🧩 For detailed file history, consider pairing this plugin with the Version History Diff plugin.
Manage your file changes directly inside Obsidian like stage/unstage individual files and commit them.

Show the commit history of your repository. The commit message, author, date, and changed files can be shown. Author and date are disabled by default as shown in the screenshot, but can be enabled in the settings.

Compare versions with a clear and concise diff viewer.
Open it from the source control view or via the Open diff view command.

Not exhaustive - these are just some of the most common commands. For a full list, see the Command Palette in Obsidian.
List changed files: Lists all changes in a modalOpen diff view: Open diff view for the current fileStage current fileUnstage current fileDiscard all changes: Discard all changes in the repositoryCommit: If files are staged only commits those, otherwise commits only files that have been stagedCommit with specific message: Same as above, but with a custom messageCommit all changes: Commits all changes without pushingCommit all changes with specific message: Same as above, but with a custom messageCommit-and-sync: With default settings, this will commit all changes, pull, and pushCommit-and-sync with specific message: Same as above, but with a custom messageCommit-and-sync and close: Same as Commit-and-sync, but if running on desktop, will close the Obsidian window. Will not exit Obsidian app on mobile.Push, PullEdit remotes: Add new remotes or edit existing remotesRemove remoteClone an existing remote repo: Opens dialog that will prompt for URL and authentication to clone a remote repoOpen file on GitHub: Open the file view of the current file on GitHub in a browser window. Note: only works on desktopOpen file history on GitHub: Open the file history of the current file on GitHub in a browser window. Note: only works on desktopInitialize a new repoCreate new branchDelete branchCAUTION: Delete repositoryOpen source control view: Opens side pane displaying Source control viewOpen history view: Opens side pane displaying History viewEdit .gitignoreAdd file to .gitignore: Add current file to .gitignoreSome Git services may require further setup for HTTPS/SSH authentication. Refer to the Authentication Guide
The Git implementation on mobile is very unstable! I would not recommend using this plugin on mobile, but try other syncing services.
One such alternative is GitSync, which is available on both Android and iOS. It is not associated with this plugin, but it may be a better option for mobile users. A tutorial for setting it up can be found here.
🧪 The Git plugin works on mobile thanks to isomorphic-git, a JavaScript-based re-implementation of Git - but it comes with serious limitations and issues. It is not possible for an Obsidian plugin to use a native Git installation on Android or iOS.
[!caution] Depending on your device and available free RAM, Obsidian may
- crash on clone/pull
- create buffer overflow errors
- run indefinitely.
It's caused by the underlying git implementation on mobile, which is not efficient. I don't know how to fix this. If that's the case for you, I have to admit this plugin won't work for you. So commenting on any issue or creating a new one won't help. I am sorry.
If you have a large repo/vault I recommend to stage individual files and only commit staged files.
If you find this plugin useful and would like to support its development, you can support me on Ko-fi.