¿Cómo instalas hub (git wrapper) en Ubuntu con autocompletado y documentación de trabajo?

19

De acuerdo con los documentos oficiales , solo descarga un binario precompilado, pero esto dejaría cosas como la mandocumentación y el autocompletado que no funcionan.

Bryce Drennan
fuente
Si ha respondido a su pregunta, es posible que desee aceptar cualquiera de las respuestas.
Anwar

Respuestas:

16

Puede usar este PPA para instalar hubcomo paquete:

sudo add-apt-repository ppa:cpick/hub
sudo apt-get update
sudo apt-get install hub
Eugene Yarmash
fuente
¿Sabes si esto configura el autocompletado y el alias git?
Bryce Drennan
@Bryce Parece que el último paquete (2.2.9-0ubuntu0ppa1) contiene un script de finalización de bash, pero no páginas de manual o scripts posteriores a la instalación.
Eugene Yarmash
1
ppa: cpick / hub no se ha actualizado en años, y proporciona una versión muy antigua de hub
Mike Slinn
Puede encontrar más información actualizada sobre cómo agregar un repositorio que contenga hub aquí: github.com/github/hub/issues/718
Thomas David Baker,
10

Hub está disponible como complemento ahora. https://snapcraft.io/hub

Puedes instalarlo con sudo snap install --classic hub.

Maxime Rainville
fuente
1
Lástima que el Subsistema de Windows para Linux no sea compatible con Snap
Mike Slinn
6

Instalar Hub

  1. Descargar Hub desde Github

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

  2. Extraelo. Lo extraje al Apps/directorio de mi casa y le cambié el nombre hub-linux. Entonces, en mi configuración, la ruta completa a la bincarpeta es/home/anwar/Apps/hub-linux/bin

  3. Ahora abra el ~/.bashrcarchivo y agregue la ruta binaria del concentrador a la $PATHvariable de entorno. Agregar una línea como la siguiente funcionará.

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

No olvides usar la ruta real en tu configuración

Agregue la finalización de Bash

Para agregar la finalización de bash, necesitamos decirle a bash que obtenga el archivo de finalización que viene con hub-archive. El archivo de finalización está en la etccarpeta de la carpeta del concentrador extraído. Para hacerlo

Abre el .bashrcy escribe allí estas líneas

### 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

No olvide reemplazar la ruta exacta del hub.bash_completion.sharchivo de acuerdo con su configuración

Ahora, debería poder utilizar la finalización de bash de concentrador

Agregar la página de manual de Hub a la manbase de datos

La página de manual de Hub realmente vino con el archivo. Está en la sharecarpeta Para agregar la página de manual, necesitamos ponerla en el directorio de la página de manual.

Para hacerlo, abra una terminal y cd en el archivo concentrador extraído. Asumiendo que su directorio actual se encuentra en el mismo directorio en el centro de bin, share, README.mdresiden, utilice este comando para copiar la página de manual

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

Ahora puede usar la página de manual del concentrador usando el man hubcomando.

Si no puede usarlo inmediatamente man hub, úselo sudo updatedbpara actualizar man db del sistema.

Anwar
fuente
2

Este script debería hacer el trabajo en Ubuntu 16.04 con zsh.

# 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

Alternativamente para Ubuntu 16.04 con bash:

# 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

Instalación de prueba:

hub version
Bryce Drennan
fuente
Su script bash contiene la línea echo "eval "$(hub alias -s)"" >> ~/.zshrc. Esto parece una cosa zsh, no una cosa bash? (Soy un novato * nix, entonces, ¿qué sé?)
Sam Axe