我倾向于为git设置长分支名称(例如,step110_create_search_engine_to_replace_google)。
我应该如何将它简单地称为checkout / commit语句中的step110?
答案 0 :(得分:32)
如果您使用的是类Unix系统(Linux,Mac OS X,或许还有其他系统),那么contrib/complete/git-completion.bash
bash自动完成规则集可让您自动完成git命令(您可以输入git checkout step110<tab>
并且您的shell将自动填充分支名称。
要激活此功能:
contrib/complete/
中有一个文件git-completion.bash
。将其置于安全的地方(例如~/.git-completion
),然后将以下行添加到~/.bashrc
文件中:source ~/.git-completion
。重新启动shell会话或运行source ~/.git-completion
以使其在当前shell会话中运行。 如果你有幸使用zsh
代替bash
,我知道oh-my-zsh
有git自动完成插件(我不知道如何在没有{{{{}的情况下激活它们1}})。
来源:
答案 1 :(得分:12)
以下是我在OS X上安装它的方法......
首先检查它是否在您的本地系统上。似乎MacPorts和Homebrew为您下载它。
$ find / -name "git-completion.bash"
否则,请下载...
$ wget https://raw.github.com/git/git/master/contrib/completion/git-completion.bash -O ~/.git-completion
如果您没有wget
,可以使用Homebrew轻松安装,或使用cURL。
$ vim ~/.profile
...或您选择的编辑。
然后添加......
source ~/.git-completion
如果您的自动填充功能无法自动生效...
$ source ~/.profile
...然后你有Git自动完成。
答案 2 :(得分:3)
试试这个别名:
cb = "!checkoutbranch() { local branches=`git branch | grep -i $1 | tr -d '* '`; if [[ `echo \"$branches\" | wc -l | tr -d ' '` != 1 ]]; then echo \"Matched multiple branches:\"; git branch | grep --color -i $1; exit 1; fi; git checkout $branches; }; checkoutbranch"
结帐develop
分支:
git cb dev
答案 3 :(得分:2)
git symbolic-ref
可能会有所帮助。您可以为分支创建别名。
$ # Define short name 's1'
$ git symbolic-ref refs/heads/s1 refs/heads/step110_create_search_engine_to_replace_google
$
$ # You can use short name 's1' afterwards
$ git reset --hard s1
$ git checkout -b s1-experiment s1
$
$ # Remove the short name (don't use branch -d here or the original branch gets deleted!)
$ git symbolic-ref -d refs/heads/s1
可以以相同的方式引用远程分支以保存键入remote/
TAB 。 (在这种情况下,我建议使用refs/tags/
而不是refs/heads/
作为前缀,以防止意外移动远程ref。
$ git symbolic-ref refs/tags/base refs/remotes/github/a-very-long-named-remote-branch
$ git rebase -i base
答案 4 :(得分:1)
我只想补充一点,这个文件通常已经附带git。您无需再次下载。您只需找到它并运行它。
在我的系统(Centos OS)上,以下步骤有效:
$ locate completion.bash
/usr/share/doc/git-1.7.4.1/contrib/completion/git-completion.bash
$ source /usr/share/doc/git-1.7.4.1/contrib/completion/git-completion.bash
Obvioiusly指出,最好将此行添加到主目录中的.bashrc文件中,这样每次打开新shell时都不需要重复它。
在我的情况下,我会将最后一个命令添加到我的.bashrc文件
source /usr/share/doc/git-1.7.4.1/contrib/completion/git-completion.bash