Np. Na świeżej maszynie ubuntu właśnie uruchomiłem sudo apt-get git
i nie ma zakończenia podczas wpisywania np git check[tab]
.
Nie znalazłem nic na http://git-scm.com/docs , ale uzupełnienie IIRC jest obecnie zawarte w pakiecie git i potrzebuję tylko odpowiedniego wpisu w moim bashrc.
(cd ~ && exec cat .bashrc | grep completion)
.Odpowiedzi:
W systemie Linux
w większości dystrybucji skrypt uzupełniania git jest instalowany w
/etc/bash_completion.d/
(lub/usr/share/bash-completion/completions/git
) podczas instalacji gita, nie ma potrzeby wchodzenia na github. Wystarczy go użyć - dodaj tę linię do.bashrc
:W niektórych wersjach Ubuntu autouzupełnianie git może być domyślnie uszkodzone, ponowna instalacja za pomocą tego polecenia powinna to naprawić:
Na komputerze Mac
Możesz zainstalować uzupełnianie git za pomocą Homebrew lub MacPorts.
Homebrew
if
$BASH_VERSION
> 4:brew install bash-completion@2
(zaktualizowana wersja) Zwróć szczególną uwagę, którą wersję basha posiadasz jako domyślną wersję systemu MacOS z wersją 3.2.57 (1) -release.dodaj do
.bash_profile
:W przypadku starszych wersji basha:
brew install bash-completion
dodaj do
.bash_profile
:MacPorts
sudo port install git +bash_completion
następnie dodaj to do swojego
.bash_profile
:Więcej informacji w tym przewodniku: Instalacja uzupełniania Bash git
Zauważ, że we wszystkich przypadkach musisz utworzyć nową powłokę (otworzyć nową kartę / okno terminala), aby zmiany odniosły skutek.
źródło
/usr/share/bash-completion/completions/git
./etc/bash_completion.d/git-prompt
jest używany do obsługi poleceń git, a nie do zakończenia.brew uninstall bash-completion
wtedybrew install git
, gdy trzeba było git zainstalowany przez jakiś inny sposób przed, to powyższe kroki będą działać.miałem ten sam problem, wykonałem poniższe kroki:
następnie dodaj następujące wiersze do swojego
.bash_profile
(zazwyczaj w folderze domowym)źródło: http://code-worrier.com/blog/autocomplete-git/
źródło
export https_proxy=proxy_ip:proxy_port
Naprawdę nie rozumiem, dlaczego nie pobiera ustawień z systemu.Większość wyświetlanych instrukcji podpowiada pobranie
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
i źródła tego w swoim skrypcie startowym basha, np
.bashrc
.Ale jest z tym problem, ponieważ odwołuje się do
master
gałęzi, która jest najnowszą wersjągit-completion.bash
. Problem polega na tym, że czasami się zepsuje, ponieważ nie jest kompatybilny z zainstalowaną wersją gita.W rzeczywistości teraz to się zepsuje, ponieważ
master
gałąźgit-completion.bash
ma nowe funkcje, które wymagają git v2.18, do którego żaden z menedżerów pakietów i instalatorów nie zaktualizował jeszcze. Pojawi się błądunknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config
Dlatego najbezpieczniejszym rozwiązaniem jest odwołanie się do wersji / tagu, który pasuje do zainstalowanego gita. Na przykład:
https://raw.githubusercontent.com/git/git/v2.17.1/contrib/completion/git-completion.bash
Zauważ, że ma
v2.17.
w adresie URL zamiastmaster
. A potem, oczywiście, upewnij się, że źródło tego znajdujesz w skrypcie startowym bash.źródło
/Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash
Dla pewności porównałem go z wersją 2.17.1 na github i pasuje.Ubuntu 14.10
Zainstaluj
git-core
ibash-completion
Do bieżącego wykorzystania sesji
Aby mieć to zawsze włączone we wszystkich sesjach
źródło
Zobacz https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
Musisz tylko pobrać skrypt ukończenia
źródło
Po prostu zrób to w swoim
~/.bashrc
:Inne odpowiedzi mówią, aby zainstalować
bash-completion
, nie musisz tego robić, ale jeśli to zrobisz, nie ma potrzeby bezpośredniego pobierania zakończenia. Robisz jedno lub drugie, a nie oba.Bardziej ogólnym rozwiązaniem jest zapytanie o lokalizację systemu zgodnie z zaleceniami projektu bash-complete:
źródło
na moim ubuntu jest tutaj zainstalowany plik:
możesz skorzystać z łączy do
/usr/lib/git-core
folderu. Znajdziesz tam instrukcję, jak skonfigurować PS1 lub jak używać__git_ps1
źródło
Może być pomocny dla kogoś: -
Po pobraniu .git-Complete.bash z poniższego linku,
i próbując użyć funkcji __git_ps1, otrzymywałem błąd, ponieważ -
Najwyraźniej musimy pobierać skrypty oddzielnie od głównego, aby to polecenie działało, ponieważ __git_ps1 jest zdefiniowane w git-prompt.sh. Podobnie jak w przypadku pobierania .git-Complete.bash, pobierz plik git-prompt.sh:
a następnie dodaj następujące elementy w swoim .bash_profile
source ~ / .bash.git uruchomi pobrany plik i
export PS1='\W$(__git_ps1 "[%s]")
polecenie doda nazwę gałęzi checkout out po bieżącym katalogu roboczym (jeśli jest to repozytorium git).Będzie więc wyglądać tak: -
dir_Name[branch_name]
gdzie nazwa_katalogu to nazwa katalogu roboczego, a nazwa_gałęzi to nazwa gałęzi, nad którą aktualnie pracujesz.Uwaga - w __git_ps1 rozróżniana jest wielkość liter.
źródło
Arch Linux
Źródło
/usr/share/git/completion/git-completion.bash
w jednym z plików startowych bash.Na przykład:
Możesz znaleźć skrypt w innych lokalizacjach,
/usr/share/bash-completion/completions/git
ale te skrypty nie działają dla mnie.źródło
Ubuntu
Jest piękny odpowiedź tutaj . Pracował dla mnie na Ubuntu 16.04
Windows
Git Bash to narzędzie umożliwiające automatyczne uzupełnianie. Nie jestem pewien, czy jest to część standardowej dystrybucji, więc ten link może być również przydatny. Nawiasem mówiąc, Git Bash pozwala używać poleceń powłoki Linuksa do pracy w systemie Windows, co jest świetną rzeczą dla osób, które mają doświadczenie w środowisku GNU / Linux.
źródło
Na Github w projekcie Git udostępniają plik bash do autouzupełniania poleceń git.
Powinieneś pobrać go do katalogu domowego i zmusić bash do jego uruchomienia. To po prostu dwa kroki i doskonale wyjaśnione (krok po kroku) w poniższym poście na blogu.
blog z problemami z kodem: autocomplete-git /
Przetestowałem to na Macu, powinno działać również na innych systemach. Możesz zastosować to samo podejście do innych systemów operacyjnych.
źródło