Ich habe das folgende Problem auf einem unserer Server: Ich möchte einen Benutzer, der regelmäßig aus einem Git-Repo zieht (mit einem Cronjob), aber nur Fast-Forward-Pulls durchführt (der Inhalt auf dem Server ändert sich auch manchmal). Mit modernem Git (1.6.6 und neuer) kann ich einfach Folgendes tun
git pull --ff-only origin master
aber da ich nur 1.6.0.2 installiert habe, kann ich das nicht tun. Ich dachte, ich könnte das Problem umgehen, indem ich
git config merge.ff only
git pull origin master
aber wie sich herausstellte, hat das nicht funktioniert (kein Fehler, es führt aber trotzdem Zusammenführungen durch). Irgendwelche Ideen, wie ich das lösen kann?
Antwort1
Ich habe eine Lösung dafür gefunden, indem ich manuell überprüft habe, ob der aktuelle Zweig ( master
) tatsächlich ein Nachkomme des zusammenzuführenden Zweigs ( origin/master
) ist:
git fetch origin
if [ $(git branch --contains master -a | grep origin/master) ]
then
git merge origin/master
else
echo "No fast-forward, aborting merge"
fi