Quick Tip zum synchen von Tags in Forks (Git) hinzugefügt.
ci/woodpecker/push/default Pipeline was successful Details

This commit is contained in:
Daniel Spittank 2023-05-08 20:23:05 +02:00
parent 9e7b8f8faa
commit 4525956c0d
3 changed files with 58 additions and 0 deletions

View File

@ -0,0 +1,58 @@
# 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...
1. Fork lokal clonen
2. Upstream Remote anlegen
``` bash
git remote add upstream <REPO-URL>
git pull upstream
```
3. Skript zur Synchronisation anlegen (sync.sh) [^1]:
``` bash
## 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
```
4. synchronisieren mit ``` ./sync.sh upstream origin ```
[^1]: How to update my fork to have the same branches and tags as the original repository on github? [Stackoverflow](hhttps://stackoverflow.com/questions/15779740/how-to-update-my-fork-to-have-the-same-branches-and-tags-as-the-original-reposit)