Die Antwort ist nein.
Es gibt keine Möglichkeit, ein entferntes Repository so einzurichten, dass jeder, der es klont, das Standardverhalten von git pull
geändert.
Sie können jedoch einen serverseitigen Hook einrichten, der überprüft, dass niemand Merge-Commits verschiebt ( etwas wie dies vielleicht).
Es gibt auch einige Konfigurationsoptionen, die für Sie von Interesse sein könnten. Alle Entwickler, die aus dem entfernten Repository klonen, müssen diese selbst manuell einstellen.
1. Option branch.<name>.rebase
Sie können einen lokalen Zweig so konfigurieren, dass er immer --rebase
und zwar so, dass sie <name>
mit dem Namen einer Verzweigung:
git config branch.<name>.rebase true
Nachdem ich dies auf master
die master
Abschnitt in .git/config
sah so aus:
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
2. Option branch.autosetuprebase
Da die Ausführung des vorherigen Konfigurationsbefehls für jeden Git-Zweig mühsam sein kann, können Sie Git so konfigurieren, dass er automatisch für jeden neuen Zweig eingerichtet wird:
git config branch.autosetuprebase always
(Sie können auch angeben never
, remote
y local
siehe man git-config
für Details).
Ohne die --global
wird die Konfiguration gespeichert in .git/config
und nur das aktuelle Repository ist betroffen. Mit --global
wird die Konfiguration gespeichert in ~/.gitconfig
und jedes unkonfigurierte Repository ist davon betroffen.
Diese Option hat keine Auswirkungen auf bereits bestehende Zweige.
3. Option pull.rebase
git config pull.rebase true
(Sie können ihm auch die --global
Option).
Wenn diese Option wahr ist, wird die Ausführung von git pull
ist gleichbedeutend mit git pull --rebase
es sei denn branch.<name>.rebase
wurde festgelegt auf false
.