Quick Tip zum synchen von Tags in Forks (Git) hinzugefügt.
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				ci/woodpecker/push/default Pipeline was successful
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	ci/woodpecker/push/default Pipeline was successful
				
			This commit is contained in:
		
							parent
							
								
									9e7b8f8faa
								
							
						
					
					
						commit
						4525956c0d
					
				
					 3 changed files with 58 additions and 0 deletions
				
			
		
							
								
								
									
										58
									
								
								docs/Quick Tips/Git/sync-tags-branches.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								docs/Quick Tips/Git/sync-tags-branches.md
									
										
									
									
									
										Normal 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)
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue