La risposta è no.
Non esiste un modo per impostare un repository remoto in modo tale che chiunque lo cloni abbia il comportamento predefinito git pullmodificato.
È possibile, tuttavia, impostare un hook sul lato server che verifica che nessuno spinga i commit di merge ( qualcosa del genere , forse).
Ci sono anche alcune opzioni di configurazione che potrebbero interessarti. Tutti gli sviluppatori che clonano dal repository remoto dovranno impostarlo manualmente.
1. Opzione branch.<name>.rebase
È possibile configurare un ramo locale da utilizzare sempre --rebase, in questo modo, sostituendolo <name>con un nome di ramo:
git config branch.<name>.rebase true
Dopo averlo eseguito master, la mastersezione in .git/configappariva così:
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
2. Opzione branch.autosetuprebase
L'esecuzione del comando di configurazione precedente per ogni ramo Git può essere una seccatura, quindi puoi configurare Git per configurarlo automaticamente per ogni nuovo ramo:
git config branch.autosetuprebase always
(È possibile anche specificare never, remotee local, vedi man git-configper maggiori dettagli.)
Senza l' --globalopzione, la configurazione viene salvata .git/confige solo il repository corrente è interessato. Con --global, la configurazione viene salvata ~/.gitconfige ogni repository non configurato viene interessato.
Questa opzione non influisce sulle filiali già esistenti.
3. Opzione pull.rebase
git config --bool pull.rebase true
(Puoi anche dargli l' --globalopzione.)
Se questa opzione è vera, l'esecuzione git pullè equivalente a git pull --rebase, a meno che non branch.<name>.rebasesia stata impostata su false.