git-annex-pre-push(1)

πŸ“¦ version 10.20261026, in alpine 3.24, arch rolling, debian trixie

πŸ’– git-annex-pre-push πŸ’–

okay bestie, so this is a page from the git-annex manual β€” General Commands Manual, the section-1 girlies β€” and it's all about git-annex-pre-push. let's get into it πŸŽ€


✨ NAME ✨

git-annex-pre-push β€” run by git pre-push hook πŸͺ


🌸 SYNOPSIS 🌸

git annex pre-push

πŸ¦‹ DESCRIPTION πŸ¦‹

so this one is literally meant to be called from git's pre-push hook, and the best part?? git-annex automatically sets up the hook for you. no manual config, she just does it πŸ’…

here's the tea tho: this hook prevents ALL pushes to git remotes when there is an unverified special remote. all of them. no exceptions. periodt.

and why, you ask? because it's guarding against an attack, bestie 😭 where an attacker configures a special remote to access a location that you do not expect it to access. like, for example, it might access a location that you do not intend to share with anyone. imagine πŸ’€

so once such a special remote is enabled, objects from it can reach the local repository, but they're prevented from being sent to other repositories β€” okay, so far so good, right? but here's the sneaky part: a git push would send git-annex branch information, and that could verify to an attacker that you do possess particular objects in the special remote. iykyk. the hook avoids that information leakage. queen behavior honestly πŸ‘‘

⚠️ bestie warning: unverified special remote = no pushes to git remotes. that's the whole vibe. don't fight it.

✨ OPTIONS ✨

  • git-annex-common-options(1) β€” yeah so those common options can be used here 🫢 that's it, that's the option list, we love a low-maintenance page 🌈

πŸ‘€ SEE ALSO πŸ‘€


πŸ‘‘ AUTHOR πŸ‘‘

Joey Hess <id@joeyh.name> πŸ’œ


okay that's the whole page, bestie! πŸŽ€ this was git-annex-pre-push, section 1 of the General Commands Manual β€” go forth and push safely, or don't push at all, that's kinda the point πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from