Die Antwort ist nein.
Es gibt keine Möglichkeit, ein Remote-Repository so einzurichten, dass jeder, der es klont, das Standardverhalten von git pullgeändert hat.
Sie können jedoch einen serverseitigen Hook einrichten, der überprüft, ob niemand Merge-Commits überträgt (so etwas vielleicht).
Es gibt auch einige Konfigurationsoptionen, an denen Sie interessiert sein könnten. Alle Entwickler, die aus dem Remote-Repository klonen, müssen diese manuell festlegen.
1. Option branch.<name>.rebase
Sie können einen lokalen Zweig so konfigurieren, dass er immer so verwendet --rebasewird und <name>durch einen Zweignamen ersetzt wird:
git config branch.<name>.rebase true
Nachdem Sie dies ausgeführt haben master, sah der masterAbschnitt in folgendermaßen .git/configaus:
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
2. Option branch.autosetuprebase
Das Ausführen dieses vorherigen Konfigurationsbefehls für jeden Git-Zweig kann problematisch sein. Sie können Git also so konfigurieren, dass er automatisch für jeden neuen Zweig eingerichtet wird:
git config branch.autosetuprebase always
(Sie können auch angeben never, remoteund local, siehe man git-configfür Details.)
Ohne diese --globalOption wird die Konfiguration in gespeichert .git/configund nur das aktuelle Repository ist betroffen. Mit --globalwird die Konfiguration in gespeichert ~/.gitconfigund jedes nicht konfigurierte Repository ist betroffen.
Diese Option wirkt sich nicht auf bereits vorhandene Zweige aus.
3. Option pull.rebase
git config --bool pull.rebase true
(Sie können ihm auch die --globalOption geben.)
Wenn diese Option wahr git pullist, entspricht das Ausführen dem git pull --rebase, es sei denn, es branch.<name>.rebasewurde festgelegt false.