Linux-koneellani on automaattinen täydennys haaroille Gitin kanssa.
[Huomaa, josta puhumme git-haaran viimeistely, ei bash-viimeistely (esim. komennot, tiedostot jne.) Siksi EI Lanen vastausta lainkaan]
Esimerkiksi voin kirjoittaa git checkout
+ TAB ja hae luettelo haaroista.
Tai voin kirjoittaa kaikki git checkout feb*
+ TAB saadaksesi kaikki haarat, jotka alkavat ”feb”.
Kuinka saan tämän toiminnon Maciin?
Yritin ladata ja suorittaa bash-completion/bash_completion
ja bash-completion/bash_completion.sh.in
mutta ei iloa. Ensimmäinen antoi virheilmoituksia aiheesta declare: -A invalid_option
. Toinen ei antanut virheitä. Kun minä git checkout
+ TAB vaikka saan edelleen luettelon hakemistossa olevista tiedostoista, ei haaroista. Olen projektin juuressa.
Automaattinen täydennys hakemistoille ja bash-komennot toimivat kunnossa, joten se on ominaista Gitille.
kommentit
- Liityin juuri tähän yhteisöön, jotta voin ’ vielä vastata, mutta löysin ” oh-my-zsh ” olla erittäin hyödyllinen ja pidän todella käyttöliittymästä: github.com/ohmyzsh/ohmyzsh Tämä on tietysti ihmisille, jotka käyttävät zsh-tiedostoa. Olen ’ m olettaen, että se ei toimi ’ t bashille …
Vastaa
ok, joten tarvitsin git automaattisen täydennysohjelman.
Sain sen tältä URL-osoitteelta:
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
Ei tarvitse huolehtia siitä, mihin hakemistoon olet, kun suoritat tätä kotihakemistona (~
) käytetään kohteen kanssa.
Sitten lisäsin tiedostoon ~/.bash_profile
seuraavan” suorita, jos se on olemassa ”-koodin:
if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi
Päivitys: Teen näistä koodibiteistä suppeamman kutistamaan .bashrc
-tiedostoni, tässä tapauksessa Käytän nyt:
test -f ~/.git-completion.bash && . $_
Huomaa: $_
tarkoittaa edellisen komennon viimeistä argumenttia. joten . $_
tarkoittaa ajaa se – ”se” on .git-completion.bash
tässä tapauksessa
Tämä toimii edelleen sekä Ubuntu että OSX ja koneissa, joissa ei ole komentosarjaa .git-completion.bash
.
Nyt git
Välilehti ( itse asiassa se ”s git
Tab -välilehti ) toimii kuin viehätys!
ps: Jos tämä ei onnistu ”Älä tee lepakkoa, sinun on ehkä suoritettava chmod u+x ~/.git-completion.bash
, jotta voit antaa itsellesi tarvittavan luvan:
-
chmod
on komento, joka muuttaa tiedoston käyttöoikeuksia. -
u
tarkoittaa käyttäjää, joka omistaa tiedoston, oletuksena sen luojan, eli sinä -
+
tarkoittaa käyttöoikeuden asettamista / aktivoimista / lisäämistä -
x
tarkoittaa käyttöoikeuden suorittamista, eli kykyä suorittaa komentosarja
Kommentit
- Jep, käynnistämällä pääte uudelleen bash-komentosarjan lisäämisen jälkeen, se toimi. Istuin täällä mietiskellen, miksi se yritti jatkaa automaattista täydennystä
Models
-kansioon, kun osuinm
Tab
tehdäksesi siitä automaattisen täydennyksen muotoonmaster
. - Katso myös unix.stackexchange.com/q/ 48862/10043 toiselle vinkille
- Jos hyväksytty vastaus ei ’ toimi kenellekään, kokeile seuraavaa:
source ~/.bash_profile
koodin liittämisen jälkeen. Päätelaitteen uudelleenkäynnistäminen tekee myös saman. - Kiitos! Yritin joitain muita juttuja, mutta mikään ei toiminut (mukaan lukien tämä github.com/bobthecow/git-flow-completion/wiki/… ). Ratkaisusi toimi kuin viehätys;)
- (et ’ et ole valmistanut
git
, mutta Apple on oletusarvogit
)brew install git
ja käynnistä pääte uudelleen niille, jotka kohtaavat outoja virheitä, kutengit checunknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config usage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>]
Vastaus
Jotkut ihmiset haluavat käyttää pakettien hallintaa automatisoimaan Mac OS -pakettien asennuksen, päivityksen ja määritykset. Olen faneja paketinhallinnoista, ja mielestäni Homebrew on paras paketinhallinta Mac OS: lle (jotkut sanovat sen olevan tosiasiallinen Mac OS -pakettien hallinta).
Kun olet asentanut Homebrewn, voit yksinkertaisesti asentaa git yhdessä bash-complete ja brew install git bash-completion
.
Tämän jälkeen sinun on lisättävä seuraava ~/.bash_profile
-kansioon:
if [ -f `brew --prefix`/etc/bash_completion.d/git-completion.bash ]; then . `brew --prefix`/etc/bash_completion.d/git-completion.bash fi
(Huomaa: Jos tämä asennus epäonnistuu 404-virheen kanssa ja sinulla on jo git asennettuna, poista vain tämän suodatusasennuksen git-osa)
Lisätietoja gitin ja bash-complete-ohjelman asentamisesta hautumalla täällä.
Kommentit
- Lisätään
git
ja lisäämälläbash-completion
ei ole lainkaan sama asia kuin lisäämällä.git-completion.bash
Ne ovat erilaisia ohjelmia ja tekevät melko erilaisia asioita – yksi tekee bash-komennon automaattinen täydennys ja toinen tekee komennon automaattisen täydennyksen ja ’ nair, jonka twain tapaa;) - toimii kuin viehätys, kiitos. Voisitteko selittää mikä on komentosarjan käyttö, jonka olet saanut minut lisäämään hakemistoon
~/.bash_profile
? - Huolimatta siitä, mitä muut ovat sanoneet tästä vastauksesta, se on se, joka sai git-automaattisen täydennyksen toimimaan i n pääte.
- Huomaa, että rivit, jotka lisätään
~/.bash_profile
-kohtaan, määritettiin minulle homebrew-lähdössä. Käytin niitä yllä olevien viivojen sijaan. Sitten sinun on ladattava bash-profiili jokaiseen pääteikkunaan, jossa haluat käyttää automaattista täydennystä, komennollasource ~/.bash_profile
Vastaa
Suorita tämä päätelaitteessa:
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
Tee sitten tämä:
vi ~/.bash_profile
Lisää nämä rivit:
if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi
Se on kaikki. Tämä toimi minulle.
Kommentit
- (2. vaihe) Jos joku haluaa avata bash_profile-tiedoston tekstieditorilla, tee vain tämä: avaa -e .bash_profile
- Neitsyt Mac OS High Sierrassa
~/.bash_profile
-tiedostoa ’ ei ole. Tätä ’ hienosti luo vain tiedosto ja sijoita seif
-komentosarja sinne ja tallenna. Lataa komentotulkki uudelleen sen jälkeen ja se toimii. - Tämä toimi tee vi: n (jonka kanssa taistelen aina) sijaan vain avoin -e ~ / .bash_profile
- Toista vaihetta varten tarvitset tämä linkki
Vastaa
git
ja git-completion.bash
mukana jo macOS-komentorivityökalut (xcode-select --install
). Ota bash-automaattinen täydennys käyttöön lisäämällä tämä ~/.bash_profile
-kansioon.
[ -f /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash ] && . /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash
Tämä mahdollistaa myös automaattisen täydennyksen git-haaroille.
kommentit
- melko varma, että olen ’ komentorivityökalut asennettu, mutta tiedosto ei ’ ei ole olemassa tapauksessani. Hyvää mennä vaikka hautua (ja koska minun git on myös hautua myös, ehkä viisaampi).
- Kiitos! IMO: n pitäisi olla vastaus vihreällä valintamerkillä.
- Tämä on suoraviivaisin ratkaisu ja se toimii minulle
- Tämä toimi minulle – vaikka käytin hieman erilaista muotoa .
if [ -f /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash ]; then . /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash > /dev/null fi
- minulle vastaus toimi, mutta kun olet lisännyt annetun rivin
~/.bash_profile
, älä unohda myös suorittaasource ~/.bash_profile
(varsinkin jos luot~/.bash_profile
-tiedoston ensimmäisen kerran)
Vastaa
Tässä on, mikä hämmentää joitain teistä: sinulla on panimo tai portteja asennettuna, mutta käytät järjestelmän gitiä kohdassa /usr/bin/
. Tämän tarkistaminen:
which git
Jos näet /usr/bin/git
, joko kahvi ei ole oikein määritetty tai sinä ” Et ole asentanut gitä brew: n kautta.
Jos asennat git brew: n kautta, bash-täydennysten ottaminen käyttöön panimoille mahdollistaa myös gh: n bash-täydennykset. Tämä johtuu siitä, että /usr/local/etc/bash_completion
hankkii kaiken lähteestä /usr/local/bash_completion.d
, ja gitin brew-paketti asentaa sinne git-komentosarjan.
Kommentit
- Tämä on järkevää, mutta miten ” ottaisit käyttöön bash-täydennykset panimolle ”? ’ puuttuu miten se tehdään, tämän pitäisi olla osa vastaustasi
- Tein juuri tämän (se toimii, kiitos) kautta simplified.guide/macos/bash-completion , mutta automaattinen valmistuminen viivästyy muutaman sekunnin ajan … outoa
Vastaa
Git automaattinen täydennys Catalinassa ja uudemmissa (Homebrew-versiota käyttäen)
macOs muutettu bash – zsh oletuskuoreksi, joka alkaa Catalinasta.
Joten aiot tarvitsevat erityisiä automaattisen täydennyksen komentosarjoja zsh: lle.
Näin asennat ne Homebrew: lla:
brew install zsh-completion
Brewn zsh-valmius sisältää itse asiassa git-täydennyksen.
Automaattisen täydennyksen aktivoimiseksi sinun on lisättävä pieni koodilohko ~/.zshrc
-kansioon. Saatat joutua luomaan kyseisen tiedoston käyttäjäkansioon, jos sitä ei vielä ole olemassa. Huomaa: Yllä olevan asennuskomentosarjan lähtö kertoo tarkalleen, mikä koodi lisätään, joten lue se huolellisesti ja kopioi sieltä siinä tapauksessa, että sitä on päivitetty kirjoitukseni jälkeen.
if type brew &>/dev/null; then FPATH=$(brew --prefix)/share/zsh-completions:$FPATH autoload -Uz compinit compinit fi
Tärkeää:
Kun asennus on valmis, lukee asennusohjelman lähdön.
Se neuvoo paitsi lisäämään koodia .zshrc-tiedostoon, myös antamaan neuvoja mahdollisesti tarvittavista lisätoiminnoista, kuten pakottaen zcompdumpin uudelleen. Mutta todennäköisesti et tarvitse muita vaiheita.
Kommentit
- Pääte näyttää ärsyttävän viestin joka kerta, kun se ’ s avattu:
zsh compinit: insecure directories, run compaudit for list. Ignore insecure directories and continue [y] or abort compinit [n]?
Mutta se toimii! - Liityin juuri tähän yhteisöön, jotta voin ’ t vielä vastausta, mutta löysin ” oh-my-zsh ” olevan erittäin hyödyllinen ja pidän käyttöliittymästä: github.com/ohmyzsh/ohmyzsh Tämä on tietysti ihmisille, jotka käyttävät zsh-tiedostoa. Olen ’ m olettaen, että se ei toimi ’ t bashille …
Vastaa
Voit asentaa bash ja git MacPortsista, kun ”bash_completion” -vaihtoehto on käytössä. Se on luultavasti helpoin tapa pitää sekä git että valmistumiset ajan tasalla.
http://denis.tumblr.com/post/71390665/adding-bash-completion-for-git-on-mac-os-x-snow-leopard
MacPortsin asentaminen: http://www.macports.org/install.php/
Lisätietoja
Linux-järjestelmän täydennysasetusten löytäminen: / / etc /bash_completion.d/git (se on pitkä tiedosto). Sen kopioiminen itsestään ei todennäköisesti kuitenkaan toimi, koska se on suunniteltu hankittavaksi suorituskehyksen kautta / etc / bash_completion (joka on peräisin tiedostosta /etc/profile.d/bash_completion.sh; tiedostot / etc / profile .d ovat peräisin tiedostosta / etc / profile).
Vastaa
Jos git-valmius on osittain rikki, myös hankinnan jälkeen https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
, sinun on ehkä päivitettävä git-versiosi.
Esimerkiksi, kun kirjoitin git check
+ TAB
, se täydentää automaattisesti git checkout
. Mutta kun kirjoitin git checkout
+ TAB
, se ei näyttänyt haaraluetteloa, vain HEAD
.
Minun korjaukseni oli päivittää git
-versio. Olin 2.7.0-versiossa, joka ei ilmeisesti ollut yhteensopiva uusimman git-completion.bash
kanssa. Juoksin brew upgrade git
, joka päivitti sen versioon 2.13.0, ja nyt se ehdottaa Erly täydentää haaranimeni automaattisesti.
Kommentit
- Sain saman ongelman, mutta jouduin suorittamaan
brew upgrade git
jabrew link git
(kun ohitus on käytössä) - Kiitos catch @Tope -palvelusta. Olen vaihtanut
update
muotoonupgrade
.
Vastaa
Paras ratkaisu, jonka olen löytänyt ratkaisemaan tämän ongelman, on SpinDancessa , kirjoittanut Connor Livingston :
Jos git- complete.bash -komentosarjaa ei ole koneellasi, noudata sitä yllä antamastani linkistä (joka on tämä ) ja tallenna se paikalliselle koneellesi uuteen tiedostoon nimeltä git-complete.bash /usr/local/etc/bash_completion.d/ -hakemisto. Jos komentosarja git-complete.bash on olemassa koneellasi, mutta ei ole hakemistossa /usr/local/etc/bash_completion.d/ , meidän pitäisi luoda siitä kopio kyseiseen hakemistoon. Nopea sudo cp /current/path/to/your/git-completion.bash /usr/local/etc/bash_completion.d/git-completion.bash pitäisi tehdä temppu. Niille, jotka ovat kiinnostuneita hakemistosta /usr/local/etc/bash_completion.d/ , se on tarkoitettu uusien valmiuksien komentojen tallentamiseen, ja sinun on ehkä luotava se, jos sitä ei vielä ole olemassa kone.
Tässä vaiheessa git-complete.bash-komentosarjan pitäisi olla paikallisessa koneessasi hakemistossa /usr/local/etc/bash_completion.d/ . Yhdistämme nyt git-suoritusskriptin bashiin osoittamalla sitä osoitteesta ~ / .bash_profile .
Huomaa: edellisen lauseen tilde viittaa tietokoneen kotihakemistoon. Lisää seuraava rivi tiedostoon ~ / .bash_profile : lähde /usr/local/etc/bash_completion.d/git-completion.bash ja tallenna. Viimeinen vaihe on ladata bash-profiilisi uudelleen. Voit saavuttaa tämän suorittamalla lähde ~ / .bash_profile nykyisessä bash-istunnossasi.
vastaus
Asenna oh-my-zsh ja aseta zsh oletuskuoreksi ja kiitos myöhemmin 🙂
Kommentit
- Olen tehnyt sen juuri siinä toivossa, ettei minulla ole käsitellä sitä – välilehdelle lyömisen jälkeen ei vieläkään ole haaraehdotuksia
- Et todellakaan tarvitse oh-my-zsh -ohjelmaa tai edes mitään erillistä laajennusjärjestelmää! Gitin valmistuminen tulee laatikosta, sinun on vain otettava se käyttöön.
Vastaa
Yritti sitä ja se toimii hyvin haaroille, mutta kun teet git st
+ tab
, se näyttää virheen näin:
tuntematon vaihtoehto: –list-cmds = list-mainporcelain, muut, nohelpers, alias, list-complete, config use: git [–version] [–help] [-C] [-c =] [–exec-polku [=]] [–html-polku] [–man-polku] [–infopolku] [-p | –paginoi | –no-pager] [–no-korvaa-objektit] [–bare] [–git-dir =] [–work-tree =] [–nimitila =] []
Haettiin Internetistä ja havaittiin, että --list-cmds
kohdassa .git-completion.bash
oli viimeisin versio git ja mac-tietokoneellani git-versio oli 2.17.2
Tässä ovat ratkaisut
Ratkaisu 1
- Tarkista gitin versio
git --version
-komennolla -
Laita sitten sama versionumero URL-osoitteeseen kuin minä
curl https://raw.githubusercontent.com/git/git/v2.17.2/contrib/completion/git-completion.bash -o ~/.git-completion.bash
-
Noudata sitten samoja ohjeita kuin ylimmässä vastauksessa, laita alla oleva koodi kohtaan
~/.bash_profile
if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi
Ratkaisu 2
Yritä päivittää git-versio uusimpaan, kun se toimii.
vastaus
Useimmille käyttäjille git
on asennettu osana xcode-komentoriviä työkalut osoitteissa /usr/bin/git
ja bash completeio n git-sääntöä on saatavana osoitteessa /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash
.
Tällöin ei tarvitse asentaa gitä Homebrew-ohjelmasta eikä lähde-gitin täydennysääntöjä osoitteesta raw.githubusercontent.com. Luo vain symlinkki seuraavasti:
cd /usr/local/etc/bash_completion.d/ ln -s /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash git
Huomaa: varmista, että olet asentanut ja määrittänyt bash-completion
-paketin Homebrew.
Vastaus
MacOS Catalina +: lle, zsh
:
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.zsh -o ~/.git-completion.zsh
Päivitä sitten ~/.zshrc
seuraavalla:
if [ -f ~/.git-completion.zsh ]; then . ~/.git-completion.zsh fi
vastaus
Etsi .bashrc
-tiedostosi.
Avaa se ja lisää tämä rivi alareunassa:
source /etc/bash_completion.d/git
kommentit
- En ’ ei ole
/etc/bash_completion.d/
-kansiota suhteellisen uudessa järjestelmässä (OSX 10.10.3). - Yritä luoda se.
- Ei bash_completion, git_completion joka tekee erilaisia asioita.
- @MichaelDurrant Se toimii. Luota minuun.;) prowrestlingtees.com / media / catalog / product / cache / 1 / image / …
- @crmpicco Voisitteko antaa ohjeet
/etc/bash_completion.d/git
luomiseen? Se tekisi vastauksestasi arvokkaamman.