dotfiles/bin/update-all-git-repos
Oliver Davies 689c018bae Add update-all-git-repos
Add a script to update top-level cloned Git repositories within my Code
directories to their latest versions.
2024-05-11 01:55:59 +02:00

26 lines
628 B
Bash
Executable file

#!/usr/bin/env bash
# Update all top-level Git repository clones within my Code directories to their
# latest version.
set -o errexit
set -o nounset
dirs=$(find ~/Code/personal ~/Code/work -mindepth 1 -maxdepth 2 -type f -name .git -not -path '*/*.old/*')
for dir in $dirs; do
repo_path="${dir%/.git}"
cd "${repo_path}"
# If the repo is a bare clone, the commands need to be run within the
# worktree directory.
[[ -f .bare/worktrees/main/gitdir && -d main && -f main/.git ]] && cd main
echo "Updating $(pwd)"
# Update the repository.
git fetch --all --jobs=4 --progress --prune
git pull --rebase
done