git-annex lets git track files and delegates the actual storage to some other backend (plain files or a “special remote”). For your photo collection, you probably just want the git-annex assistant. But if not, here’s a cribsheet for everyday operations…
The cribsheet
…and now you see why it’s do-it-yourself. So…
Copy this onto some scratch paper1 and skim through the git-annex walkthrough for the command that each arrow represents (a forked arrow counts as one arrow). Use the thick orange arrows for your files and the dotted purple arrows for the tracking info. (And that purple dot next to “remotes” represents a copy of the long purple arrow as a fork.)
Don’t be afraid to set up a test repo and remote somewhere in /tmp
.
Later, when it’s time to create a repo for a real-world use case,
here are the quick hits…
Setup time analysis paralysis for a real repo
git config --global annex.genmetadata true
- This automatically records the creation month of each file annexed.
- For later reading: uses of metadata and autogenerating more metadata.
- For each remote: any encryption? (none, hybrid, or other?)
- If yes, maybe you also want chunking.
- Which hash to use: annex.backend (set in
.gitattributes
).- The default
SHA256E
(SHA-2 of content and file extension) is probably fine.
- The default
Footnotes
-
I’d suggest you do this on a sticky note on your monitor, but sticky notes are kind of small. Anyway, it’s probably better if you lose it next week and have to do this exercise a second time—after that, you’ll have it memorized for sure. ↩