#!/bin/bash

# Alle auf dem Server gelöschten Zweige auch lokal löschen
git remote prune origin

# Alle in den aktuellen Zweig integrierten Zweige anzeigen
git branch --merged

# Alle auf dem Server gelöschten Zweige entfernen
git branch -vv | grep ': entfernt]'|  grep -v "\*" | awk '{ print $1; }' | xargs -r git branch -d

# Alle Zweige anzeigen
git branch --list -a

# In einen anderen Zweig wechseln und alle Änderungen verwerfen. (git reset [<ref>|<commit>] --hard)
git reset HEAD --hard


# Status des Git-Repos
git status

# Log der letzten Aktivitäten
git reflog

# Commit Kommentar ändern
git commit --amend

# Alle Subverzeichnisse auf Serverstand bringen
for file in $(ls) ;  \
do  \
  cd $file;  \
  git fetch --prune;  \
  cd ..; \
done;

# Remote-Zweig mit lokalen Zweig "verbinden"
git branch --set-upstream-to=origin/<branch> <branch>

# Submodules aktualisieren
git submodule foreach git pull origin master

## Einreichen von definierten Dateien
# Einzureichende Dateien commiten
git commit <files>

# Aus dem letzten Commit einen Zweig machen
git branch <Name des Zweiges> HEAD~1

# Diesen Zweig nach gitlab pushen
git push -u origin <Name des Zweiges>

# Nach dem Merge ein 
git pull