2016-09-15 27 views
0

對於git本身的別名,例如。 alias g=git,你會在這裏更容易地找到你的答案。別名g ='git'並且bash完成仍然有效

對於git子命令別名,例如。 alias gco = "git checkout",看看here


I型git過於頻繁,所以我就別名:

alias g='git' 

不過,現在我不能做:

g com標籤

和有完成給我:

g commit

我該如何完成再次運行?


重複分化

equal-first meta answer提出了一個鏈接到更一般的問題保持特定的情況下。我在此編輯中添加了更一般情況下的鏈接。

聲明的重複問題更通用 - 但主要是關於git子命令的別名,而不是git本身的別名。

這個問題是關於其別名是git本身的具體情況。

在標記爲「重複」的情況下,git-自己的情況只在第4個顯示的答案中以及對列出的第一個答案的評論中回答。閱讀第二部分難題(源文件/usr/share/bash-completion/completions/git)需要閱讀另一條評論才能通過該方法使其工作。

解決在下面的評論鏈接:

  • @ ewcz的鏈接是明顯的重複,並已得到解決
  • 雷米J的鏈接
    1. 這是問題的提出(並回答)也是約git子命令
    2. 這是一個關於非git別名的更通用的問題,它不會接近此ca上的最佳解決方案SE
    3. 這是一樣的@ ewcz的鏈接(已經解決)
+0

我跑'GNU bash,版本4.3.11(1) - 發佈(x86_64-pc-linux-gnu)' –

+5

http://stackoverflow.com/questions/342969/how-do-i-get-bash-completion-to-工作與別名? – ewcz

+0

也許這幾個鏈接將幫助你1. [bash別名中的Git自動完成?](http://stackoverflow.com/a/9869478/6683985)2. [如何獲得命令別名的bash完成?](http ://unix.stackexchange.com/a/4220/184872)3. [如何讓bash完成使用別名?](http://stackoverflow.com/a/15009611/6683985)4. ... –

回答

6

在你.bashrc的末尾添加:

_xfunc git __git_complete g _git 

如果你看到bash: _xfunc: command not found,使用更長的形式:

source /usr/share/bash-completion/completions/git 
__git_complete g _git 

重新加載bash

exec bash

(這個答案是靈感來自kub1x's answer和問題有關completion of git subcommand aliasescomments

1

添加在你的.bashrc文件如下:

source /usr/share/bash-completion/completions/git 
complete -o default -o nospace -F _git g