如何在Ubuntu上安装具有自动完成功能和man文档功能的hub(git wrapper)?


Answers:


16

您可以使用此PPAhub打包安装:

sudo add-apt-repository ppa:cpick/hub
sudo apt-get update
sudo apt-get install hub

您知道这是否设置了自动补全功能和git别名吗?
布莱斯·德伦南

@Bryce看起来最新的软件包(2.2.9-0ubuntu0ppa1)包含bash完成脚本,但没有手册页或安装后脚本。
尤金·雅玛什

1
ppa:cpick / hub多年来没有更新,并且提供了非常旧的Hub版本
Mike Slinn

有关如何添加包含中心的仓库的
Thomas David Baker


6

安装集线器

  1. 从Github下载Hub

    https://github.com/github/hub/releases

  2. 提取它。我已将其提取Apps/到家中的目录中,并将其重命名为hub-linux。因此,在我的设置中,bin文件夹的完整路径为/home/anwar/Apps/hub-linux/bin

  3. 现在打开~/.bashrc文件,并将集线器二进制路径添加到$PATH环境变量。如下所示添加一行即可。

    ### Adds Hub-linux
    export PATH="$PATH:$HOME/Apps/hub-linux/bin/"

不要忘记在设置中使用实际路径

添加重击完成

要添加bash补全,我们需要告诉bash附带hub-archive附带补全文件。完成文件位于etc提取的中心文件夹的文件夹中。为此,

打开.bashrc并在其中写这些行

### Load Hub Linux bash completion
if [ -f $HOME/Apps/hub-linux/etc/hub.bash_completion.sh ] ; then
     . $HOME/Apps/hub-linux/etc/hub.bash_completion.sh
fi

不要忘记hub.bash_completion.sh根据您的设置替换文件的确切路径

现在,您应该能够使用集线器bash补全功能

将Hub的手册页添加到man数据库

Hub的手册页实际上随档案一起提供。在share文件夹中。要添加手册页,我们需要将其放在手册页目录中。

为此,请打开一个终端,并cd到提取的集线器存档。假设你的当前目录是在同一个目录下集线器binshareREADME.md驻留,使用此命令复制手册页

sudo cp -r share/ /usr/
sudo chmod 644 /usr/share/man/man1/hub.1

现在,您可以使用man hub命令使用中心的手册页。

如果您不能立即使用man hub,请使用sudo updatedb刷新系统的man db。


2

该脚本应在使用zsh的Ubuntu 16.04上完成此工作。

# Install binary and documentation
wget https://github.com/github/hub/releases/download/v2.2.9/hub-linux-amd64-2.2.9.tgz
tar zvxvf hub-linux-amd64-2.2.9.tgz
sudo ./hub-linux-amd64-2.2.9/install

# Setup autocomplete for zsh:
mkdir -p ~/.zsh/completions
mv ./hub-linux-amd64-2.2.9/etc/hub.zsh_completion ~/.zsh/completions/_hub
echo "fpath=(~/.zsh/completions $fpath)" >> ~/.zshrc
echo "autoload -U compinit && compinit" >> ~/.zshrc

# add alias
echo "eval "$(hub alias -s)"" >> ~/.zshrc

# Cleanup
rm -rf hub-linux-amd64-2.2.9

另外,对于使用bash的Ubuntu 16.04:

# Install binary and documentation
wget https://github.com/github/hub/releases/download/v2.2.9/hub-linux-amd64-2.2.9.tgz
tar zvxvf hub-linux-amd64-2.2.9.tgz
sudo ./hub-linux-amd64-2.2.9/install

# Setup autocomplete for bash:
mkdir -p ~/.bash/completions
mv ./hub-linux-amd64-2.2.9/etc/hub.bash_completion.sh ~/.bash/completions/_hub
echo "if [ -f ~/.bash/completions/_hub ]; then" >> ~/.bashrc
echo "    . ~/.bash/completions/_hub" >> ~/.bashrc
echo "fi" >> ~/.bashrc

# add alias
echo "eval "$(hub alias -s)"" >> ~/.bashrc

# Cleanup
rm -rf hub-linux-amd64-2.2.9

测试安装:

hub version

您的bash脚本包含这一行echo "eval "$(hub alias -s)"" >> ~/.zshrc。这看起来像zsh,而不是bash吗?(我是* nix新手,所以我知道什么)
Sam Ax
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.