Obsidian for teams

Sync Obsidian with GitHub: the free setup, and what breaks when a team shares the repo

By Baalda Team · · 8 min read

Short answer

Put the vault in a private GitHub repository, install the community Git plugin, run Initialize a new repo, push to origin, then set an auto commit-and-sync interval and turn on Pull on startup. It is free and keeps every version. It is unreliable on phones, and with two editors the same line edited twice becomes a merge conflict.

To sync Obsidian with GitHub, put your vault in a private GitHub repository and install the community Git plugin, which commits, pulls and pushes on a timer from inside Obsidian. It is free, it gives you a full history of every note, and on a laptop it works well. On a phone, and the moment a second person shares the repository, it stops being the easy answer.

Every guide that ranks for this stops at the first half: one person, two or three devices, a repo nobody else touches. That is the case Git suits best. I write this from Baalda, where a team keeps its notes as plain markdown files in one shared vault and edits them together in real time, so the second half of this post is about what changes when the vault belongs to more than one person, and where Git still belongs once it does.

How do you sync an Obsidian vault with GitHub?

The plugin is called Git, by Vinzent03, MIT licensed, and at version 2.43.0 as of 5 November 2026. It drives the Git installed on your machine, so Git itself comes first. The steps below follow the plugin's own Getting Started guide.

  1. Install Git for your operating system and sign in to GitHub from the command line, either over HTTPS with a credential manager or with an SSH key. The plugin's Authentication guide covers both.
  2. Create an empty private repository on GitHub. Private matters: a vault holds things you would not publish, and a public repo is readable by anyone.
  3. Install the plugin. Settings, Community plugins, Browse, search for Git, install and enable it.
  4. Initialise the vault. Run Initialize a new repo from the command palette, then Commit all changes with specific message for the first commit.
  5. Push it. Run Push. The plugin asks for a remote name and URL: enter origin and the repository URL from GitHub, ending in .git.
  6. Add a `.gitignore` with the Edit .gitignore command, so per-device state stays out of the history.
  7. Turn on the automatics. Set Auto commit-and-sync interval (minutes) to something like 10, and enable Pull on startup so each device starts from the latest copy.

The .gitignore the plugin's documentation suggests looks like this. Ignoring all of .obsidian/ keeps settings per device; ignoring only workspace.json syncs your plugins and hotkeys but not which panes you had open.

.obsidian/workspace.json
.obsidian/workspace-mobile.json
.trash/
.DS_Store

If you already have the repository and are setting up a second computer, clone it instead (git clone <url> wherever the vault should live) and open that folder as a vault. Git can only clone into a new folder, so do not try to clone over an existing vault.

vault (private)LaptopGit plugin, every 10 minDesktopPull on startupPhoneisomorphic-gitcommit · pull · pushAuthor: "very unstable"no SSH, size limited by memoryFree, full history, and solid on desktops. Built for one writer at a time.
One person, three devices: the laptop and the desktop push and pull through a private GitHub repo every few minutes, and the phone is the weak link

Does Obsidian Git work on iPhone and Android?

Badly, and its author says so. The plugin's README calls mobile "very unstable" and says "I would not recommend using this plugin on mobile". Phones cannot run real Git, so the plugin falls back to isomorphic-git, a JavaScript reimplementation, which means no SSH authentication, a limit on repository size from memory, and on large vaults the documentation warns that Obsidian "may crash on clone/pull".

The documented workarounds are a separate Git app (GitSync on Android and iOS, or Working Copy on iOS, which is paid) for the clone, or a different sync service for the phone altogether. Plenty of people end up with Git on the desktop as history and backup, and Obsidian Sync or another service carrying files to the phone. The Obsidian Sync alternatives post compares those services on iPhone and Android.

Is Git better than Obsidian Sync?

For one person on desktops, Git is better at history and worse at everything else. You get every version of every note forever, diffs, and your notes in a repository you control, for nothing. Obsidian Sync gives you painless phones, end-to-end encryption and no setup, and as listed on Obsidian's pricing page in November 2026 Sync Standard is $4 per user per month billed annually, with one month of version history.

Git plugin + GitHubObsidian Sync
CostFreeFrom $4 per user per month
HistoryEvery commit, forever1 month (Standard), 12 months (Plus)
Phones"Very unstable"Works
Sync delayYour commit interval, often minutesSeconds
Same line edited in two placesMerge conflict to resolve by handMerged automatically, see the sync conflicts post
SetupGit, auth, a repo, a pluginSign in

Neither of these was built for two people writing in the same note at the same time, which is the next question.

What breaks when two people share the repository?

Git was designed for code, where people work on separate branches and merge on purpose. A shared vault on auto commit-and-sync does the opposite: everyone commits to main every ten minutes and merges whatever arrives. Three things follow.

  • Conflicts land on whoever pulls second. Git merges line by line. If two people edit different paragraphs of a note, the merge is clean. If both touch the same line between syncs, the second person to pull gets conflict markers in the note and has to choose. The plugin has a decent editor for this now, with buttons to keep either side or both, but someone still has to stop and do it, and on a meeting note everyone edited at once that is most lines.
  • Nobody sees anyone else's work for minutes. Your teammate's edit reaches you after they commit, push, and you pull. Two people cannot write the same agenda live; they take turns and hope.
  • The repository is all or nothing. GitHub gives a collaborator the whole repository. There is no way to share the Clients/ folder with a contractor and keep Hiring/ from them, short of a second repository. And everyone who edits needs Git, authentication and the plugin, which rules out most of a non-engineering team on day one.
Shared repo, auto commit-and-syncAna and Ben edit launch.md before either syncs<<<<<<< HEADLaunch: Tuesday 18 Nov=======Launch: 18 Nov, 10:00 UTC>>>>>>> origin/mainWhoever pulls second stops and picks a side.Same edits, same moment, one live noteLaunch: Tuesday 18 Nov, 10:00 UTCAna typed "Tuesday"Ben typed "10:00 UTC"Both edits merge as operations (Yjs CRDT),and the .md file on each disk updates.Different paragraphs merge cleanly in Git too. The trouble is the same line, between syncs.
Two people edit the same line before either syncs. Through Git, the second person to pull gets a conflict to resolve. In a live shared vault, both edits merge as they are typed

None of this is a bug in the plugin. It is Git doing exactly what Git does, applied to a job (several people writing one document together) that Git never claimed. The guide to sharing an Obsidian vault walks through every route people try for that job and what each one costs.

How does Baalda handle a team vault, and where does Git still fit?

Baalda keeps the part of the Git setup that was worth having, a folder of plain .md files on every member's disk, and replaces the sync. Each open note is backed by a Yjs CRDT, so when two people type in the same paragraph their edits merge as operations instead of one overwriting the other, and both see the result as it happens. A Rust file watcher turns any change on disk, from a person, an AI agent or a git pull, into the same operations, so changes made outside the app still reach everyone.

Sharing is per folder or per note rather than per repository. Notes are private by default, and you share a folder or a single file with the team or one person, as view or edit. An AI assistant connected over MCP gets exactly what its person can open and nothing more. Version history sits in the app's right panel for every note, and when one edit removes most of a note the server first keeps the previous version, labelled Before large deletion. The details are in the versions and recovery docs.

Git still has a place, on one machine. Because the vault is a normal folder, one person can keep it in a Git repository and commit on a schedule, which gives you an off-site history on GitHub as well as the app's. The rules from the vaults documentation: add .context/ to .gitignore, because that hidden folder holds the device's identity and must never be synced by another tool, and stay on one branch. A pull into the folder is diffed into the live notes and the team sees it the way it would see a colleague typing.

# .gitignore for a Baalda vault kept in Git on one machine
.context/
.DS_Store

Where is Baalda the wrong answer?

  • There is no Git integration, only Git compatibility. No branches, no pull request review inside the app. Checking out another branch in the vault folder rewrites the files, and the app treats that as edits and sends that branch to the whole team. If you want every change to a note reviewed like code, keep that folder in Git and do review on GitHub.
  • Two people running Git in their own copies will commit everything twice. Pick one machine for Git, or none.
  • It is a desktop app. Baalda runs on macOS, Windows and Linux, with iOS planned. If the reason you are fighting Git is your phone, Baalda does not fix that today.
  • For one person, Git and Obsidian are a fine answer. If nobody else will ever write in the vault, the setup above costs nothing and keeps working. Baalda is for the case where a team writes in it.

Baalda is Apache-2.0 and free to run locally or self-host. The managed backend is free for two people and one synced vault, and Team is $10 per seat per month. For the wider comparison, see Baalda vs Obsidian.

So should you sync Obsidian with GitHub?

  • One person, desktops only: yes. The Git plugin, a private repo, a ten-minute interval and Pull on startup.
  • One person with a phone: Git on the desktop for history, and Obsidian Sync or another service for the phone.
  • A team writing in the same notes: not through Git. Use a vault built for live editing and per-folder sharing, and keep Git on one machine as a backup if you want the history on GitHub.

FAQ

Frequently asked questions

Is syncing Obsidian with GitHub free?

Yes. GitHub private repositories are free, and the Git plugin for Obsidian is MIT licensed. What it costs is setup: Git installed on each computer, authentication to GitHub, and a .gitignore so per-device files stay out of the history.

Can I use Obsidian Git on my iPhone?

You can, but the plugin's author calls mobile "very unstable" and does not recommend it. Phones run isomorphic-git, a JavaScript reimplementation with no SSH and a memory limit on repository size, and large vaults can crash Obsidian on clone or pull. GitSync or Working Copy, or a different sync service for the phone, are the documented workarounds.

What should I put in .gitignore for an Obsidian vault?

At least .obsidian/workspace.json and .obsidian/workspace-mobile.json, which change every time you move a pane, plus .trash/ and .DS_Store. Ignore the whole .obsidian/ folder if you want settings and plugins kept separate on each device.

Can a team share one Obsidian vault through GitHub?

It works for a small technical team that rarely edits the same note at once. Everyone needs Git and the plugin, edits arrive only after a commit and a pull, the same line edited by two people becomes a conflict, and GitHub shares the whole repository, so there is no folder-level access.

Start your team’s brain

Free and open source. No account needed.