alias g to git in .gitconfig?
This is pretty trivial, but I'm a lazy typist.
Is it possible to alias 'g' to git via git config, instead of via bash? If I do a plain bash alias then none of the nice autocompletion from git-contrib work with 'g'.
- Rob
Quoted 5 lines · Rob Sanheim
This is pretty trivial, but I'm a lazy typist.
Is it possible to alias 'g' to git via git config, instead of via bash? If I do a plain bash alias then none of the nice autocompletion from git-contrib work with 'g'.
No, you'll need to alias 'g' to git in bash, and then if you still want completion you'll need to also register the compgen to call _git completion routine. Its two lines:
alias g=git
complete -o default -o nospace -F _git g
Signature · 1 line
Shawn.
Thanks, that did it.
Quoted 17 lines · Shawn O. Pearce
Quoted 5 lines · Rob Sanheim
This is pretty trivial, but I'm a lazy typist.
Is it possible to alias 'g' to git via git config, instead of via bash? If I do a plain bash alias then none of the nice autocompletion from git-contrib work with 'g'.
No, you'll need to alias 'g' to git in bash, and then if you still want completion you'll need to also register the compgen to call
_gitcompletion routine. Its two lines:alias g=git
complete -o default -o nospace -F_gitg--
Shawn.
PATCH 1/1 bash completion: alias 'g' to 'git' with completion
---
Quoted 9 lines · Rob Sanheim
Quoted 6 lines · Shawn O. Pearce
No, you'll need to alias 'g' to git in bash, and then if you still want completion you'll need to also register the compgen to call
_gitcompletion routine. Its two lines:alias g=git
complete -o default -o nospace -F_gitgThanks, that did it.
Actually it's not enough, you need to teach fetch, pull and push to recognise the new alias too, as in this patch. I do wonder if there's a better approach to those functions however, so that the "obvious" fix suggested by Shawn would work.
- Thomas
contrib/completion/git-completion.bash | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-)
contrib/completion/git-completion.bash +4 -3
@@ -789,7 +789,7 @@ _git_fetch () git-fetch*,1) __gitcomp "$(__git_remotes)" ;; - git,2) + git,2|g,2) __gitcomp "$(__git_remotes)" ;; *)
@@ -1053,7 +1053,7 @@ _git_pull () git-pull*,1) __gitcomp "$(__git_remotes)" ;; - git,2) + git,2|g,2) __gitcomp "$(__git_remotes)" ;; *)
@@ -1075,7 +1075,7 @@ _git_push () git-push*,1) __gitcomp "$(__git_remotes)" ;; - git,2) + git,2|g,2) __gitcomp "$(__git_remotes)" ;; *)
@@ -1717,6 +1717,7 @@ _gitk () } complete -o default -o nospace -F _git git +complete -o default -o nospace -F _git g complete -o default -o nospace -F _gitk gitk # The following are necessary only for Cygwin, and only are needed
Signature · 1 line
1.6.0.2.771.g3967
PATCH 1/1 bash: remove fetch, push, pull dashed form leftovers
We don't provide complation for git-commands in dashed form anymore, so there is no need to keep those cases.
---
Quoted 4 lines · Thomas Rast
Actually it's not enough, you need to teach fetch, pull and push to recognise the new alias too, as in this patch. I do wonder if there's a better approach to those functions however, so that the "obvious" fix suggested by Shawn would work.
Maybe something like this?
contrib/completion/git-completion.bash | 36 ++++++++------------------------ 1 files changed, 9 insertions(+), 27 deletions(-)
contrib/completion/git-completion.bash +9 -27
@@ -784,14 +784,9 @@ _git_fetch () { local cur="${COMP_WORDS[COMP_CWORD]}" - case "${COMP_WORDS[0]},$COMP_CWORD" in - git-fetch*,1) + if [ "$COMP_CWORD" = 2 ]; then __gitcomp "$(__git_remotes)" - ;; - git,2) - __gitcomp "$(__git_remotes)" - ;; - *) + else case "$cur" in *:*) local pfx=""
@@ -810,8 +805,7 @@ _git_fetch () __gitcomp "$(__git_refs2 "$remote")" ;; esac - ;; - esac + fi } _git_format_patch ()
@@ -1051,36 +1045,25 @@ _git_pull () { local cur="${COMP_WORDS[COMP_CWORD]}" - case "${COMP_WORDS[0]},$COMP_CWORD" in - git-pull*,1) - __gitcomp "$(__git_remotes)" - ;; - git,2) + if [ "$COMP_CWORD" = 2 ]; then __gitcomp "$(__git_remotes)" - ;; - *) + else local remote case "${COMP_WORDS[0]}" in git-pull) remote="${COMP_WORDS[1]}" ;; git) remote="${COMP_WORDS[2]}" ;; esac __gitcomp "$(__git_refs "$remote")" - ;; - esac + fi } _git_push () { local cur="${COMP_WORDS[COMP_CWORD]}" - case "${COMP_WORDS[0]},$COMP_CWORD" in - git-push*,1) - __gitcomp "$(__git_remotes)" - ;; - git,2) + if [ "$COMP_CWORD" = 2 ]; then __gitcomp "$(__git_remotes)" - ;; - *) + else case "$cur" in *:*) local remote
@@ -1104,8 +1087,7 @@ _git_push () __gitcomp "$(__git_refs)" ;; esac - ;; - esac + fi } _git_rebase ()
Signature · 1 line
1.6.0.2.474.ga74ad.dirty
Re: [PATCH] bash: remove fetch, push, pull dashed form leftovers
Quoted 2 lines · SZEDER Gábor
We don't provide complation for git-commands in dashed form anymore, so there is no need to keep those cases.
[...]
Quoted 5 lines · Thomas Rast
Quoted 2 lines
I do wonder if there's a better approach to those functions however, so that the "obvious" fix suggested by Shawn would work.
Maybe something like this?
That's indeed much simpler and better. FWIW,
Signature · 2 lines
Thomas Rast
trast@{inf,student}.ethz.ch