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 osuin m Tab tehdäksesi siitä automaattisen täydennyksen muotoon master.
  • 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 oletusarvo git) brew install git ja käynnistä pääte uudelleen niille, jotka kohtaavat outoja virheitä, kuten git 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ä, komennolla source ~/.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 se if -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 suorittaa source ~/.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 ja brew link git (kun ohitus on käytössä)
  • Kiitos catch @Tope -palvelusta. Olen vaihtanut update muotoon upgrade.

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

  1. Tarkista gitin versio git --version -komennolla
  2. 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 
  3. 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.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *