Branches und Tags in einem Fork von Upstream synchen
Manchmal ist es notwendig, einen Fork auf den aktuellen Stand zu bringen und dabei auch die Branches und Tags aus dem Upstream zu übernehmen, z.B. für Mkdocs Material Insiders notwendig, da die Pull-App versagt...
- Fork lokal clonen
- Upstream Remote anlegen
- Skript zur Synchronisation anlegen (sync.sh) 1:
## Checkout all branches from remote as tracking branches. Based on https://stackoverflow.com/questions/379081/track-all-remote-git-branches-as-local-branches/6300386#6300386 UPSTREAM=$1 MYREPO=$2 usage() { echo "Usage:" echo "$0 <upstream-remote> <target-remote>" echo "" echo "Example which ensures remote named 'maxandersen' have all the same branches and tags as 'origin'" echo "$0 origin maxandersen" exit 1 } if [ -z "$UPSTREAM" ] then echo Missing upstream remote name. usage fi if [ -z "$MYREPO" ] then echo Missing target remote name. usage fi read -p "1. This will setup '$MYREPO' to track all branches in '$UPSTREAM' - Are you sure ?" -n 1 -r if [[ $REPLY =~ ^[Yy]$ ]] then for brname in `git branch -r | grep "$UPSTREAM" | grep -v master | grep -v HEAD | sed -e 's/.*\///g'`; do git branch --track $brname $UPSTREAM/$brname ; done fi read -p "2. This will push all local branches and tags into '$MYREPO' - Are you sure ?" -n 1 -r if [[ $REPLY =~ ^[Yy]$ ]] then git push --all $MYREPO git push --tags $MYREPO fi
- synchronisieren mit
./sync.sh upstream origin
-
How to update my fork to have the same branches and tags as the original repository on github? Stackoverflow ↩