Io lavoro su questi rami che hanno grandi nomi fastidiosi, così spesso finiscono grep mio nome ramo corrente quando ho bisogno di spingere verso l'alto al ramo funzione dal mio ramo di caratteristica locale, in questo modo:Pipes in un gergo Alias?
git branch | grep '*' | sed 's/* //' | xargs git push origin
Questo funziona bene. Voglio fare questo un alias, quindi ho fatto questo in ~/.gitconfig:
[alias]
pushcur = branch | grep '*' | sed 's/* //' | xargs git push origin
Ora, quando corro git pushcur
, ottengo il seguente errore:
usage: git branch [options] [-r | -a] [--merged | --no-merged]
mi porta a credere che l'alias non sta analizzando correttamente le pipe. C'è qualcos'altro che dovrei fare per ottenere l'alias desiderato?
Non correlato alla risoluzione del problema generale, ma in versioni ragionevolmente recenti di git, è possibile configurare 'push.default' (o' push.origin.default' per limitare l'effetto a 'origin') a' current' (anche se "a monte" potrebbe a volte essere più appropriato). Vedi la sezione push.default in [git-config] (https://www.kernel.org/pub/software/scm/git/docs/git-config.html). – torek
considera anche l'utilizzo di un completamento automatico bash per archiviare i nomi dei rami! zsh con oh-my-zsh lo ha per impostazione predefinita;) – caesarsol