Jak zainstalować hub (git wrapper) na Ubuntu z działającą autouzupełnianiem i dokumentacją man?

19

Według oficjalnych dokumentów po prostu pobierasz wstępnie skompilowane pliki binarne, ale mannie działałoby to z dokumentacją i autouzupełnianiem.

Bryce Drennan
źródło
Jeśli odpowiedziałeś na swoje pytanie, możesz zaakceptować dowolną z odpowiedzi.
Anwar

Odpowiedzi:

16

Możesz użyć tego PPA, aby zainstalować hubjako pakiet:

sudo add-apt-repository ppa:cpick/hub
sudo apt-get update
sudo apt-get install hub
Eugene Yarmash
źródło
Czy wiesz, czy to ustawia autouzupełnianie i alias git?
Bryce Drennan,
@Bryce Wygląda na to, że najnowszy pakiet (2.2.9-0ubuntu0ppa1) zawiera skrypt ukończenia bash, ale nie ma stron podręcznika ani skryptów poinstalacyjnych.
Eugene Yarmash,
1
ppa: cpick / hub nie był aktualizowany od lat i zapewnia bardzo starą wersję hub
Mike Slinn
Więcej aktualnych informacji na temat dodawania repozytorium zawierającego hub można znaleźć tutaj: github.com/github/hub/issues/718
Thomas David Baker
10

Hub jest teraz dostępny w mgnieniu oka. https://snapcraft.io/hub

Możesz go zainstalować za pomocą sudo snap install --classic hub.

Maxime Rainville
źródło
1
Szkoda, że ​​podsystem Windows dla Linuxa nie obsługuje przystawki
Mike Slinn
6

Zainstaluj Hub

  1. Pobierz Hub z Github

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

  2. Wyodrębnij to. Wyodrębniłem go do Apps/katalogu w moim domu i zmieniłem jego nazwę na hub-linux. Tak więc w mojej konfiguracji pełna ścieżka do binfolderu to/home/anwar/Apps/hub-linux/bin

  3. Teraz otwórz ~/.bashrcplik i dodaj ścieżkę binarną koncentratora do $PATHzmiennej środowiskowej. Dodanie linii jak poniżej będzie działać.

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

Nie zapomnij użyć rzeczywistej ścieżki w konfiguracji

Dodaj Bash Completion

Aby dodać zakończenie bash, musimy poinformować bash, aby źródłowy plik ukończenia został dostarczony z hub-archive. Plik zakończenia znajduje się w etcfolderze wyodrębnionego folderu koncentratora. Aby to zrobić,

Otwórz .bashrci napisz tam te wiersze

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

Nie zapomnij zastąpić dokładnej ścieżki hub.bash_completion.shpliku zgodnie z konfiguracją

Teraz powinieneś być w stanie korzystać z uzupełniania hub hub

Dodaj stronę Hubu do manbazy danych

Strona podręcznika Hub faktycznie przyszła z archiwum. Jest w sharefolderze. Aby dodać stronę podręcznika, musimy umieścić ją w katalogu stron podręcznika.

Aby to zrobić, otwórz terminal i cd do wyodrębnionego archiwum koncentratora. Zakładając, że aktualny katalog jest w tym samym katalogu, w którym piasta na bin, share, README.mdzamieszkują, użyć tego polecenia, aby skopiować manpage

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

Teraz możesz użyć strony podręcznika koncentratora za pomocą man hubpolecenia.

Jeśli nie możesz od razu użyć man hub, użyj sudo updatedbdo odświeżenia man db systemu.

Anwar
źródło
2

Ten skrypt powinien wykonać zadanie na Ubuntu 16.04 z 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

Alternatywnie dla Ubuntu 16.04 z 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

Instalacja testowa:

hub version
Bryce Drennan
źródło
Twój skrypt bash zawiera wiersz echo "eval "$(hub alias -s)"" >> ~/.zshrc. To wygląda na zsh, a nie na bash? (Jestem nowicjuszem * nix, więc co wiem)
Sam Axe