La risposta è no.
Non esiste un modo per impostare un repository remoto in modo tale che chiunque lo cloni abbia il comportamento predefinito git pull
modificato.
È 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 master
sezione in .git/config
appariva 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
, remote
e local
, vedi man git-config
per maggiori dettagli.)
Senza l' --global
opzione, la configurazione viene salvata .git/config
e solo il repository corrente è interessato. Con --global
, la configurazione viene salvata ~/.gitconfig
e 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' --global
opzione.)
Se questa opzione è vera, l'esecuzione git pull
è equivalente a git pull --rebase
, a meno che non branch.<name>.rebase
sia stata impostata su false
.