Kysymys:
git * täydellinen * haaroille * komentorivillä?
Michael Durrant
2012-07-08 23:25:28 UTC
view on stackexchange narkive permalink

Linux-koneellani on automaattinen täydennys haaroille Gitin kanssa.

[Huomaa, että puhumme git-haaran loppuun saattamisesta, ei bash-valmiiksi ( esim. komennot, tiedostot jne.). Eli EI Lanen vastausta ollenkaan]

Esimerkiksi voin kirjoittaa git checkout + TAB ja saada luettelon haaroista .

Tai voin kirjoittaa git checkout feb * + TAB saadaksesi kaikki haarat, jotka alkavat "feb".

Kuinka saan tämän toiminnon Maciin?

Yritin ladata ja suorittaa bash-complete / bash_completion ja bash-complete / bash_completion.sh.in mutta ei iloa. Ensimmäinen antoi virheilmoituksia declare: -A invalid_option -kohdasta. Toinen ei antanut virheitä. Kun git checkout + TAB , vaikka saan edelleen luettelon hakemistosta, ei haaroja. Olen projektin juuressa.

Hakemistojen ja bash-komentojen automaattinen täydennys toimii kunnossa, joten se on ominaista Gitille.

Neljätoista vastused:
#1
+529
Michael Durrant
2012-07-09 03:28:51 UTC
view on stackexchange narkive permalink

ok, joten tarvitsin git automaattisen täydennyskoodin.

Sain sen tältä URL-osoitteelta:

curl https: // raw .githubusercontent.com / git / git / master / contrib / complete / git-complete.bash -o ~ / .git-complete.bash

Ei tarvitse huolehtia hakemistosta palaa, kun suoritat tämän, koska kotihakemistoa ( ~ ) käytetään kohteen kanssa.

Sitten lisäsin ~ / .bash_profile -tiedostoni seuraava 'Suorita, jos se on olemassa' -koodi:

  if [-f ~ / .git-complete.bash]; sitten. ~ / .git-complete.bashfi  

Päivitys: Teen näistä koodibiteistä suppeamman kutistamaan .bashrc -tiedostoni, tässä tapauksessa minä käytä nyt:

  test -f ~ / .git-complete.bash &&. $ _  

Huomaa: $ _ tarkoittaa edellisen komennon viimeistä argumenttia. joten . $ _ tarkoittaa sen suorittamista - "se" on tässä tapauksessa .git-complete.bash .

Tämä toimii edelleen sekä Ubuntussa että OSX: ssä ja koneissa, joissa ei ole script .git-complete.bash -komentosarja.

Nyt git -välilehti (itse asiassa se on git Tab Välilehti ) toimii kuin viehätys!

ps: Jos tämä ei onnistu, sinun on ehkä suoritettava chmod u + x ~ / .git-complete.bash antaa itsellesi tarvittavat oikeudet:

  • chmod on komento, joka muuttaa tiedoston käyttöoikeuksia
  • u tarkoittaa käyttäjää, joka omistaa tiedoston, oletuksena sen luojan, eli sinä
  • + tarkoitat asettaa / aktivoida / lisätä käyttöoikeus
  • x tarkoittaa käyttöoikeuden suorittamista, eli kykyä suorittaa komentosarja
Kyllä, 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ä `` Mallit`` -kansioon, kun osuin `m` `Sarkain '' tekemään siitä automaattisen täydennyksen` `masteriksi ''.
Katso myös toinen vihje osoitteesta http://unix.stackexchange.com/q/48862/10043
Jos hyväksytty vastaus ei toimi kenellekään, kokeile tätä: `source ~ / .bash_profile` koodin liittämisen jälkeen.Päätteen uudelleenkäynnistys tekee myös saman.
Kiitos!Yritin joitain muita juttuja, mutta mikään ei toiminut (mukaan lukien tämä https://github.com/bobthecow/git-flow-completion/wiki/Install-Bash-git-completion).Ratkaisusi toimi kuin viehätys;)
(sinulla ei ole hautua "git", mutta Applen oletusarvoisesti "git") "hautaa asenna git" ja käynnistä terminaali uudelleen niille, jotka kohtaavat outoja virheitä, kuten "git checunknown" -vaihtoehto: --list-cmds = list-mainporcelain, muut,nohelpers, alias, list-complete, config käyttö: git [--version] [--help] [-C ] [-c = ] [--exec-polku [= ]] [--html-polku] [--man-polku] [--infopolku] [-p |--paginoi |--no-pager] [--no-korvaa-objektit] [--bare] [--git-dir = ] [--työpuu = ] [--nimitila = ] [] "
Tein tämän vanhemmalla tietokoneella, kopioin bash_profile-tiedostoni uuteen tietokoneeseen, mutta automaattinen täydennys ei toiminut.Unohdin, että minun piti `käpristyä https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~ / .git-complete.bash` Kiitos vielä kerran :)
@Sachin Lähetin ratkaisun ongelmaan täältä: https://apple.stackexchange.com/a/350790/18664
Yksi mielenkiintoinen muutos, jonka voit tehdä komentosarjakomentosarjaan, on testata, jos tiedostoa ei ole, ellei sitä, käpristä komentosarja ja lähde se.
Ratkaise zsh-muodossa seuraamalla vastausta. https://stackoverflow.com/a/26479426/5293521
#2
+98
Lane
2013-05-29 23:02:45 UTC
view on stackexchange narkive permalink

Jotkut ihmiset haluavat käyttää pakettien hallintaa automatisoimalla Mac OS -pakettien asennuksen, päivityksen ja määritykset. Olen faneja paketinhallinnoista, ja mielestäni Homebrew on paras paketinhallinta Mac OS: lle (jotkut sanovat, että se on tosiasiallisesti Mac OS -pakettien hallinta). >.

Tämän jälkeen sinun on lisättävä seuraava ~/.bash_profile:

  jos etuliite / etc / bash_completion.d / git-complete.bash]; sitten. `brew --prefix` / etc / bash_completion.d / git-complete.bashfi  

(Huomaa: Jos tämä asennus epäonnistuu 404-virheen kanssa ja sinulla on jo git asennettuna, poista vain tämän hautumisasennuksen git-osa)

Lisätietoja git- ja bash-complete with brew -asennusten asentamisesta täältä.

"Git": n lisääminen ja "bash-complete" lisääminen ei ole lainkaan sama kuin ".git-complete.bash" lisääminen. Ne ovat erilaisia ​​ohjelmia ja tekevät melko erilaisia ​​asioita - toinen tekee bash-komennon automaattisen täydennyksen ja toinen tekee git-komennon automaattisen täydennyksen ja 'nair twain tapaa;)
toimi kuin viehätys, paljon kiitoksia.Voisitko selittää, mikä on komentosarjan käyttö, jonka olet saanut minut lisäämään tiedostoon `~ / .bash_profile`?
Huolimatta siitä, mitä muut ovat sanoneet tästä vastauksesta, se on se, joka sai git-automaattisen täydennyksen toimimaan terminaalissa.
#3
+35
Caique Pereira
2016-06-20 16:30:17 UTC
view on stackexchange narkive permalink

Suorita tämä terminaalissa:

  käpristää https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~ / .git-complete.bash
 

Tee sitten tämä:

  vi ~ / .bash_profile
 

Lisää nämä rivit:

  jos [-f ~ / .git-complete.bash];sitten
  .~ / .git-viimeistely. bash
fi
 

Siinä kaikki.Tämä toimi minulle.

(2. vaihe) Jos joku haluaa avata bash_profile tekstieditorilla, tee vain tämä: avaa -e .bash_profile
Neitsyt Mac OS High Sierrassa tiedostoa ~ / .bash_profile ei ole.Se on hieno, vain luo tiedosto ja aseta `` jos '' - komento sinne ja tallenna.Lataa kuori uudelleen sen jälkeen ja se toimii.
Tämä toimi minulle.Vi: n (jonka kanssa taistelen aina) sijaan vain avaa -e ~ / .bash_profile
#4
+15
Harsh Vakharia
2018-09-20 14:30:47 UTC
view on stackexchange narkive permalink

git ja git-complete.bash ovat jo mukana macOS-komentorivityökaluissa ( 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.

Melko varma, että olen asentanut komentorivityökalut, mutta tätä tiedostoa ei ole olemassa minun tapauksessani.Onnellinen mennä panimon kanssa (ja koska minulla on myös panimo, myös ehkä viisaampi).
Kiitos!IMO, tämän pitäisi olla vastaus vihreällä valintamerkillä.
Tämä on yksinkertaisin ratkaisu ja se toimii minulle
Tämä toimi minulle - vaikka käytin hieman erilaista muotoa. `` jos [-f /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash];sitten ./Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash> / dev / null fi ''
#5
+8
Brandon
2016-03-04 06:46:25 UTC
view on stackexchange narkive permalink

Jotkut teistä hämmentävät seuraavaa: sinulla on haut tai portit asennettuna, mutta käytät järjestelmän git-tiedostoa kohdassa / usr / bin / .Tämän tarkistaminen:

  which git  

Jos näet / usr / bin / git , kumpi tahansa suodatus ei ole oikeinmääritetty, tai et ole asentanut gitä brew: n kautta.

Jos asennat gitin brew: n kautta, bash-täydennysten ottaminen käyttöön panimoille mahdollistaa myös bash-täydennykset gitille.Tämä johtuu siitä, että / usr / local / etc / bash_completion tosiasiallisesti hankkii kaiken tiedostosta /usr/local/bash_completion.d , ja gitin brew-paketti asentaa git-loppukomentosarjan sinne.

Tämä on järkevää, mutta kuinka "otat bash-täydennykset käyttöön"Sinulta puuttuu miten se tehdään, tämän pitäisi olla osa vastaustasi
Tein juuri tämän (se toimii, kiitos) https://www.simplified.guide/macos/bash-completion kautta, mutta automaattinen valmistuminen viivästyy pari sekuntia ... outoa
#6
+4
Kimmo Suominen
2012-07-09 03:06:50 UTC
view on stackexchange narkive permalink

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

Mitä tulee Linux-järjestelmän valmistumisasetusten löytämiseen, katso /etc/bash_completion.d/git (se on pitkä tiedosto). Sen kopioiminen itsestään ei todennäköisesti toimi, koska se on suunniteltu hankittavaksi täydennyskehyksen 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).

#7
+2
wisbucky
2017-05-30 23:33:07 UTC
view on stackexchange narkive permalink

Jos git-valmius on osittain rikki, vaikka olet hankkinut https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash , voit vaintäytyy päivittää 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 .

Korjaus minulle oli päivittää git -versioni.Olin 2.7.0-versiossa, joka ei ilmeisesti ollut yhteensopiva uusimman git-complete.bash -version kanssa.Suoritin brew upgrade git , joka päivitti sen versioon 2.13.0, ja nyt se täydentää haaranimeni automaattisesti.

Sain saman ongelman, mutta minun piti ajaa `` hautumispäivitys git`` ja `` hautumislinkki git`` (kun ohitus on käytössä)
Kiitos saaliista @Tope.Olen vaihtanut päivityksen päivittämiseksi.
#8
+2
ravegasaenz
2018-08-15 20:43:46 UTC
view on stackexchange narkive permalink

Paras ratkaisu, jonka olen löytänyt tämän ongelman ratkaisemiseksi, on SpinDance -sivustolla, kirjoittanut Connor Livingston:

Jos koneellasi ei ole git-complete.bash-komentosarjaa, noudata sitä yllä antamastani linkistä (joka on tämä) ja tallenna se paikalliselle koneellesi uudessa tiedosto nimeltä git-complete.bash /usr/local/etc/bash_completion.d/ -hakemistossa. Jos koneellasi on git-complete.bash-komentosarja, mutta se ei ole hakemistossa /usr/local/etc/bash_completion.d/ , meidän pitäisi luoda siitä kopio kyseiseen hakemistoon. Nopean 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 ~ / .bash_profile : source /usr/local/etc/bash_completion.d/git-completion.bash ja tallenna. Viimeinen vaihe on ladata bash-profiilisi uudelleen. Voit saavuttaa tämän suorittamalla source ~ / .bash_profile nykyisessä bash-istunnossasi.

#9
+1
Inder Kumar Rathore
2019-02-07 16:44:01 UTC
view on stackexchange narkive permalink

Yritti sitä ja se toimii hyvin haaroille, mutta kun teet git st + -välilehden , virhe näyttää tältä:

tuntematon vaihtoehto: --list-cmds = list-mainporcelain, others, noohelpers, 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 =] []

Etsitään Internetistä ja havaittiin, että .list-cmds kohdassa .git-complete.bash oli gitin uusin versio ja Macissani git-versio oli 2.17.2

Tässä ovat ratkaisut

Ratkaisu 1

  1. Tarkista git-versio käyttämällä komentoa git --version
  2. Laita sitten sama versionumero URL-osoitteeseen kuin minä

      käpristää https://raw.githubusercontent.com/git/git/v2.17.2/contrib/completion/git-completion.bash -o ~ / .git-complete.bash
    
  3. Noudata sitten samoja vaiheita kuin ylimmässä vastauksessa, laita alla oleva koodi kohtaan ~/.bash_profile

      jos [-f ~ / .git-complete.bash]; sitten
      . ~ / .git-viimeistely. bash
    fi
    

Ratkaisu 2

Sinun tulisi yrittää päivittää git-versio uusimpaan, sitten sen pitäisi toimia.

#10
+1
Jpsy
2020-05-28 13:48:05 UTC
view on stackexchange narkive permalink

Suorita automaattinen täydennys Catalinalla ja uudemmalla (Homebrew-sovelluksen avulla)

macOs vaihdettiin bash: stä zsh: ksi oletuskuoreksi, joka alkaa Catalinasta.
Joten tarvitset erityisiä automaattisen täydennyksen komentosarjoja zsh: lle.

Näin asennat ne Homebrew: n avulla:

  hautua asennuksen zsh-complete
 

Brew'n zsh-valmius sisältää itse asiassa git-valmistumisen.

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. Note: Yllä olevan asennuskomentosarjan tuloste kertoo tarkalleen, mikä koodi lisätään, joten lue se huolellisesti ja kopioi sieltä siltä varalta, että sitä on päivitetty kirjoitukseni jälkeen.

  if type brew &> / dev / null; sitten
  FPATH = $ (hautua - etuliite) / share / zsh-täydennykset: $ FPATH

  autoload -Uz compinit
  Compinit
fi
 

Tärkeää:
Kun asennus on valmis, read asentaa komentosarjan lähdön.
Se neuvoo paitsi lisäämään koodia .zshrc-tiedostoon, myös antamaan sinulle neuvoja mahdollisesti tarvittavista lisätoimista, kuten pakottaen zcompdumpin uudelleen. Mutta todennäköisesti et tarvitse muita vaiheita.

#11
  0
Saša Šijak
2018-09-20 14:51:42 UTC
view on stackexchange narkive permalink

Asenna oh-my-zsh ja aseta zsh oletuskuoreksi ja kiitos myöhemmin :)

Olen tehnyt sen, juuri siinä toivossa, että minun ei tarvitse käsitellä sitä - silti mitään haaratoimintoja sen jälkeen, kun olen painanut välilehteä
Et todellakaan tarvitse ** oh-my-zsh ** -ohjelmaa tai edes mitään erillistä laajennusjärjestelmää!Gitin valmistuminen tulee laatikosta, sinun tarvitsee vain ottaa se käyttöön.
#12
  0
Dima L.
2019-10-01 15:40:05 UTC
view on stackexchange narkive permalink

Suurimmalla osalla käyttäjistä git on asennettu osana xcode-komentorivityökaluja osoitteessa / usr / bin / git ja gitin bash-suoritussäännöt ovat saatavilla osoitteessa /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash .

Tällöin ei tarvitse asentaa git Homebrew-ohjelmasta tai lähde-gitin valmistelun sää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-complete -paketin Homebrew-palvelusta.

#13
  0
NonCreature0714
2020-02-13 01:05:01 UTC
view on stackexchange narkive permalink

macOS Catalina +, zsh :

  käpristää https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.zsh -o ~ / .git-complete.zsh
 

Päivitä sitten ~ / .zshrc -koodisi:

  jos [-f ~ / .git-täydennys.zsh];sitten
    .~ / .git-valmistuminen.zsh
fi
 
#14
-2
crmpicco
2014-12-03 23:17:24 UTC
view on stackexchange narkive permalink

Etsi .bashrc -tiedostosi.

Avaa se ja lisää tämä rivi alareunaan:

source /etc/bash_completion.d / git

Minulla ei ole mitään / / 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 juttuja.
@MichaelDurrant Se toimii.Luota minuun.;) http://www.prowrestlingtees.com/media/catalog/product/cache/1/image/470x246/9df78eab33525d08d6e5fb8d27136e95/t/r/trust_me_1_2.png
@crmpicco Voisitteko antaa ohjeet `/ etc / bash_completion.d / git` luomiseen?Se tekisi vastauksestasi arvokkaamman.
`Brew install git bash-complete`, kuten selitetään osoitteessa https://apple.stackexchange.com/a/92637/136365, saa nämä tiedostot, vaikkakin eri paikassa


Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...