Short: git client (clone/commit/push/pull) Author: Anders Kjeldsen Uploader: Anders Kjeldsen Type: dev/misc Version: 0.12.1 Requires: AmiSSL 4+ (https remotes); bebbossh (optional, ssh remotes) Architecture: m68k-amigaos Distribution: Aminet am-git is a native git client for AmigaOS, written in AmLang. It speaks the git smart protocol directly over TCP/TLS - there is no shelling out to a real git binary at runtime. Commands: init, clone, fetch, pull, push, commit, add, unstage, rm, mv, status, log, diff, show, branch, tag, checkout, merge, rebase, cherry-pick, revert, reset, merge-base, config and more. Clone/fetch/push/pull work over https://, http:// and ssh remotes (validated byte-for-byte against reference git output on GitHub and a local git http-backend). https:// remotes need AmiSSL 4+. Per-host credentials can be kept in ENV:AM_GIT_NETRC (netrc format), with AM_GIT_USERNAME/AM_GIT_PASSWORD as a simple single-login fallback - use a personal access token for GitHub. ssh remotes use an external ssh client - BebboSSH from Aminet: 1. setenv AM_GIT_SSH bebbossh 2. bebbosshkeygen -f ENVARC:.ssh/id_ed25519 3. register ENVARC:.ssh/id_ed25519.pub with the server (GitHub: Settings -> SSH and GPG keys) On first connect am-git forwards bebbossh's trust-this-host question to your shell; answer yes once per host. Set stack to at least 100000 before running. Changes in 0.12.1 (performance and fixes): - Packed repositories are much faster. am-git now writes a small index (.amidx) next to each packfile, so commands read only the objects they need instead of parsing the whole pack on every run. - status/diff no longer re-hash unchanged files: they use the index's stored size and timestamp (the same trick real git uses), so status is quick even on large trees. - Reading large files is dramatically faster (bulk reads instead of one byte at a time). - Fixed: files that are tracked but sit under a .gitignore'd directory were wrongly reported as deleted; they are now handled like real git. - commit reads user.name / user.email from .git/config and ~/.gitconfig, not just environment variables, so it works on an already-configured repo. - New command: unstage - the inverse of add (like git restore --staged / git reset HEAD ). - show : now prints a file's contents at that commit, and log accepts a start ref (log ). See am-git.txt in the archive for full usage, the complete command set and credential setup.