Git-Annex

97 keepamovin 19 8/25/2025, 4:18:56 AM git-annex.branchable.com ↗

Comments (19)

kajika91 · 12m ago
I'm using my self-hosted forgejo. I don't see any benefit of git-annex over LFS so far, I'm not even sure I could setup annex as easily.

Digging a little bit I found that git-annex is coded in haskell (not a fan) and seems to be 50% slower (expected from haskell but also only 1 source so far so not really reliable).

I don't see appeal of the complexity of the commands, they probably serve a purpose. Once you opened a .gitattributes from git-LFS you pretty much know all you need and you barely need any commands anymore.

Also I like how setting up a .gitattribute makes everything transparent the same way .gitignore works. I don't see any equivalent with git-annex.

Lastly any "tutorial" or guide about git-annex that won't show me an equivalent of 'git lfs ls-files' will definitely not appeal to me. I'm a big user of 'git status' and 'git lfs ls-files' to check/re-check everything.

nolist_policy · 3h ago
I use git-annex to manage all my data on all my drives. It automatically keeps track of which files are on which drives, it ensures that there are enough copies and it checksums everything. It works perfectly with offline drives.

git-annex can be a bit hard to grasp, so I suggest to create a throw-away repository, following the walkthrough[1] and try things out. See also workflows[2].

[1] https://git-annex.branchable.com/walkthrough/

[2] https://git-annex.branchable.com/workflow/

_Algernon_ · 4m ago
I have thought about doing this in the past but ran into issues (one of them being the friction in permanently deleting files once added). I'd be curious how you use it if you have time to share.
albertzeyer · 2h ago
How much data do you have? I'm using git-annex on my photos, and that are around 100k-1M files, several TB of data, on a ZFS. In the beginning, everything was fine, but it starts to become increasingly slow, such that every operation takes several minutes (5-30 mins or so).

I wonder a bit whether that is ZFS, or git-annex, or maybe my disk, or sth else.

riedel · 2h ago
It would be great to have comprehensive benchmarks for git lsf, git annex, dvc and alike. I am also always getting annoyed with one or the other , e.g. due to the hashing overhead, etc. However, in many cases the annoyances come with bad filesystem integration on Windows in my case.
rurban · 1h ago
My guess is the windows virus scaner
internet_points · 58m ago
The page doesn't say it, but git-annex was created by https://www.patreon.com/joeyh who also made the wonderful https://joeyh.name/code/moreutils/ and https://etckeeper.branchable.com/
ttiurani · 3h ago
Relevant discussion 9 days ago about the new native git large object promisers in "The future of large files in Git is Git":

https://news.ycombinator.com/item?id=44916783

Munksgaard · 3h ago
Git-Annex is a cool piece of technology, but my impression is that it works best for single-user repositories. So for instance, as @nolist_policy described in a sibling comment, managing all your personal files, documents, music, etc. across many different devices.

I tried using it for syncing large files in a collaborative repository, and the use of "magic" branches didn't seem to scale well.

EmilStenstrom · 4h ago
Happy to see use cases front and center in command line documentation. They seem to always start with ”obscure command flag that you’ll probably never use”.
ygritte · 3h ago
Could this be abused to simulate something like SVN externals? I always found git submodules to be a very bad replacement for that.
fragmede · 3h ago
GitHub really embraced the Microsoft-esque NIH with LFS, instead of adopting git-annex.
mathstuf · 3h ago
While I also find git-annex more elegant, its cross-platform story is weaker. Note that LFS was originally a collaboration between GitHub and Bitbucket (maybe? Some forge vendor I think). One had the implementation and the other had the name. They met at a Git conference and we have what we have today. My main gripes these days are the woefully inadequate limits GitHub has in place for larger projects. Coupled with the "must have all objects locally to satisfy an arbitrary push", any decently sized developer community will blow the limit fairly quickly.

FD: I have contributed to git-lfs.

keepamovin · 3h ago
To its absolute detriment

Here is a talk by a person who adores it: Yann Büchau: Staying in Control of your Scientific Data with Git Annex https://www.youtube.com/watch?v=IdRUsn-zB2s

codemac · 3h ago
While Yann has built many things with git-annex, we should be clear that the creator of git-annex is relatively singular, Joey Hess.
keepamovin · 3h ago
Here is a comment about Joey: https://news.ycombinator.com/item?id=14908529

And an interview When power is low, I often hack in the evenings by lantern light. https://usesthis.com/interviews/joey.hess/

andrewmcwatters · 3h ago
git-annex has some really awkward documentation.

You can apparently do, sort of, but not really, the same thing git-fetch-file[1] does, with git-annex:

    git fetch-file add https://github.com/icculus/physfs.git "**" lib/physfs-main
    git fetch-file pull
`add` creates this at `.git-remote-files`:

    [file "**"]
    commit = 9d18d36b5a5207b72f473f05e1b2834e347d8144
    target = lib/physfs-main
    repository = https://github.com/icculus/physfs
    branch = main
But git-annex's documentation goes on and on about a bunch of commands I don't really want to read about, whereas those two lines and that .git-remote-files manifest just told you what git-fetch-file does.

[1]: https://github.com/andrewmcwattersandco/git-fetch-file

nolist_policy · 3h ago
Not at all. git-annex is for managing large files in git and unlike git-lfs it preserves the distributed nature of git.
keepamovin · 2h ago
Here is a guide you might like: https://www.youtube.com/watch?v=p0eVyhv2rbk