Ich arbeite an einem Bash-Skript für mein Team, um eine regelmäßige Neuausrichtung von Arbeitsbereichen zu erzwingen. Das Problem, auf das ich momentan stoße, ist, wie man feststellen kann, ob eine Verzweigung hinter dem Master steht und/oder ob sie rebasiert werden muss, anstatt blind den Zweig zu rebasen.Wie pragmatisch mit Bash-Skript überprüfen, wenn eine Verzweigung in Git muss rebased werden?
Hier ist eine vereinfachte Version von dem, was ich bisher:
#Process each repo in the working directory.
for repo_dir in $(ls -1); do
# if working branch is clean ...
# BEGIN update of local master
git checkout master
git fetch origin
git merge remotes/origin/master
# END update of local master
for sync_branch in $(git branch | cut -c 3-); do
if [ "$sync_branch" != "master" ]; then
# BEGIN rebase working branch
git checkout $sync_branch
git rebase master
# Do NOT push working branch to remote.
# END rebase working branch
fi
done
fi
done
Irgendwelche Ideen sehr geschätzt werden würde. Vielen Dank!
Ich denke, das ist nicht nötig. 'git rebase' sollte das überprüfen und sich in ein no-op verwandeln (" Current branch ist auf dem neuesten Stand. "), wenn die Zweigstelle den Kopf des Masters in seinem Commit-Protokoll hat. –
PSkocik
@PSkocik Mein Grund, dies zu tun, ist eine andere als "git rebase" Fähigkeit zur Selbstüberprüfung. Es gibt andere Aktionen, die mein Skript ausführen soll, abhängig davon, ob eine Rebase benötigt wurde oder nicht. –