Pracuję nad skryptem basha dla mojego zespołu, który wymusza regularne przekierowywanie działających oddziałów. Problemem, z którym obecnie borykam się, jest ustalenie, czy gałąź znajduje się za mistrzem i/lub czy należy ją zmienić, zamiast ślepo próbować zmienić gałąź.Jak pragmatycznie sprawdzić przy pomocy skryptu Bash, czy gałąź w git musi zostać ponownie utworzona?
Tutaj jest uproszczoną wersją tego, co mam do tej pory:
#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
Wszelkie pomysły będą mile widziane. Dzięki!
Myślę, że nie ma takiej potrzeby. 'git rebase' powinien to sprawdzić i zmienić w no-op (" Bieżąca gałąź jest aktualna. "), jeśli gałąź ma głowę nadrzędną w swoim dzienniku zatwierdzenia. –
PSkocik
@PSkocik Mój powód, dla którego chcę to zrobić, jest inny niż zdolność 'git rebase' do samodzielnego sprawdzenia. Są inne działania, które chcę wykonać w moim skrypcie, w zależności od tego, czy był potrzebny rebase. –