git-annex/ tips/ centralized git repository tutorial

The walkthrough builds up a decentralized git repository setup, but git-annex can also be used with a centralized git repository.

We have separate tutorials depending on where the centralized git repository is hosted.

- On GitHub -- However, GitHub does not currently let git-annex store the contents of large files there. So, things get a little more complicated when using it.

- On GitLab -- This service is similar to GitHub, but supports git-annex.

- On your own server -- use any unix system with ssh and git and git-annex installed. A VPS, a home server, etc.

git-annex support dropped

For information, gitlab is going to drop support for git-annex (see issue #1648).

-- Louis

Comment by spalax — Wed Oct 29 14:05:27 2025
comment 4

You can add any kind of special remotes to such a repository.

Each clone from the central repository will need to have `git annex enableremote` used to enable any special remote(s) you need to use from that clone.

Comment by joey — Wed Oct 29 14:05:27 2025
S3 special remote?

Is it possible to use special remotes (like S3) with this centralized method?

Public web content works fine, but I've had no luck with S3.

Comment by https://www.google.com/accounts/o8/id?id=AItOawn8d6WBPNtmyeANT-gjlN19QnCTQ0psRPs — Wed Oct 29 14:05:27 2025
How can I resolve a non-fast-forware on the git-annex branch?
By either running `git annex sync`, or if you want to pull and push yourself, by running `git annex merge` before pushing.
Comment by http://joeyh.name/ — Wed Oct 29 14:05:27 2025
sync, push, pull with/to/from centralized bare repository

Hi Joey,

thanks for tutorial with the centralized repo. I am currently trying to set up a central bare repo for two clients (they cannot communicate directly with each other). I am not sure if I am pushing/pulling the right way.

On the server I did:

    git init --bare
    git annex init origin

On Cĺient Alice (I want to give Bob a chance get call "git annex get" from "origin"):

    git clone ssh://tktest@192.168.56.104/~/annex .
    git annex init Alice
    git annex merge
    git annex add .
    git commit -a -m "Added tutorial"
    git push origin master git-annex
    git annex copy . --to origin

On Client Bob I have called "clone, init, merge, add, push, copy" also.

Now the tricky part - do I have to call "git annex sync" at Alice's side to get the updates from Bob over origin? I ran into troubles if I called "copy --to origin" before "git push origin master git-annex". How can I resolve a non-fast-forware on the git-annex branch? Some notes about how to sync over a central bare repo would be nice here =)

Thanks a lot, Georg

Comment by https://www.google.com/accounts/o8/id?id=AItOawkC0W3ZQERUaTkHoks6k68Tsp1tz510nGo — Wed Oct 29 14:05:27 2025
Comments on this page are closed.