Mi piace usare semplicemente git push
per inviare (solo) il ramo corrente al upstream configurato. Per questo ho impostato git config push.default upstream
che fa esattamente la cosa giusta.Sposta ramo corrente a Gerrit
Ora ho provato a configurare un telecomando adatto per Gerrit, che passa automaticamente a refs/for/*
.
L'idea stava facendo in questo modo:
[remote "gerrit"]
url = ssh://host:port/repo
push = refs/heads/*:refs/for/*
vorrei digitare git push gerrit
e si aspettano git per spingere solo il ramo corrente al rif corretta.
Sfortunatamente ora git prova a spingere tutte le filiali locali a Gerrit. - C'è un modo per dire a Git di spingere solo il ramo attuale come con lo push.default
sopra?
Aggiornamento:
- git push può utilizzare solo un singolo refspec.
- Se viene specificato un refspec esplicito sulla riga di comando, questo viene utilizzato.
- Se nessuno viene indicato sulla riga di comando, viene utilizzato quello definito con il telecomando.
- Se nessuno viene fornito con il telecomando, viene considerato solo push.default.
Per Gerrit ho bisogno di un refspec come 'ramo: ref/per/ramo' con ramo che è il ramo corrente.
Domanda:
- Esiste un equivalente refspec esplicito a ciò push.default = monte sta facendo?
- C'è un modo per configurare git per fare in modo che un semplice
git push
spinga automaticamente al refs/ref corretto?
Attualmente il modo migliore che ho trovato è avvolgere tutto in uno script separato come suggerito here. Ma non sono ancora convinto che non sia possibile con un refspec adatto.
Ok. Basta controllare le diverse opzioni qui. Ho appreso che 'push.default' viene considerato solo se non viene fornito alcun refspec. E che se fornisci un refspec (come 'HEAD') tramite la riga di comando, questo sovrascrive il refspec fornito con il telecomando. Quindi sarebbe solo premere 'ref/heads', che non è quello che vuoi. Interessante. – VonC