Working Copy is an iOS git client app. It has a good text editor and a pleasant UI. Since it is a git client it can sync with remote git servers. Here I will describe how to sync within internal network running git server on macOS.

  1. Install Simple Git Server on macOS.
  2. Under repositories create a new repository, say notes.git. Use .git extension ticked.
  3. Start the git server. It will show two URLs. One with IP and other with local domain name. We can use the domain name URL as it is constant.
  4. Checkout the created repository under mac.
git clone git://ataraxia.local/notes.git
  1. Open Working Copy on iPhone and create a new directory. Let's call personal. We cannot move repositories to new directory once cloned. Once in the directory, tap on the plus button and choose clone repository. For the url give git://ataraxia.local/notes.git and tap clone.
  2. Add a file sync-test.txt to test the syncing. Commit the file with push radio button enabled. This will sync the changes to remote.
  3. Go to macOS terminal and run:
git pull
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 220 bytes | 220.00 KiB/s, done.
From git://ataraxia.local/notes
 * [new branch]      main       -> origin/main
Your configuration specifies to merge with the ref 'refs/heads/master'
from the remote, but no such ref was fetched.
Here we can see that the repository fetched all remote branches which is main but did not checkout the fetched branch. Let's checkout the main branch.
git checkout main
branch 'main' set up to track 'origin/main'.
Switched to a new branch 'main'

Any changes made from the macOS and synced with remote will appear on Working Copy on pull. I also use Fork app for git GUI on macOS.

This gives us a full locally synced git repository.