Emulieren Sie das ff-only-Verhalten auf Git 1.6.0.2

Emulieren Sie das ff-only-Verhalten auf Git 1.6.0.2

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

verwandte Informationen