Comment

Comment by LinuxBender

I have not used this in a while but here is an old function from /etc/profile.d/functions.sh on Alpine that I used to tame some unwieldy .git folders in the past. No idea if any of it has been deprecated. It's like one big monster alias. Nowadays I instead just clone a repo to a ramdisk, purge the .git folder and then rsync it to my hoarded stash of git repos.

    function gitgc()
    {
    git config --global core.compression 6
    git config --global core.loosecompression 6
    git config --global pack.compression 6
    git config --global core.autocrlf input
    git config --global alias.st status
    git config --global alias.ci commit
    git config --global alias.co checkout
    git config --global alias.br branch
    git config --global branch.autosetuprebase always
    git config --global pack.threads "2"
    git config --global pack.windowMemory "100m"
    git config --global pack.packSizeLimit "100m"
    export GIT_HTTP_MAX_REQUEST_BUFFER=100M
    git config --global ssh.postBuffer 1000000000
    git config --global http.postBuffer 1000000000
    # echo '*.zip -delta' > .gitattributes
    # echo '*.jpg -delta' >> .gitattributes
    # echo '*.bin binary -delta' >> .gitattributes
    git fsck --full --unreachable;
    git repack -a -d -F --depth=1 --window=10;
    git reflog expire --all --expire=now --expire-unreachable=now;
    git repack -a -d -F --depth=1 --window=10;
    git gc --prune=now --aggressive;
    git fsck --full --unreachable;
    }

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton