Linux gépemen automatikus kiegészítés van az ágakhoz a Gittel.

[Megjegyzés, amiről beszélünk git ág befejezése, nem bash befejezés (pl. parancsok, fájlok stb.). Így egyáltalán NEM Lane válasza ]

Például beírhatok git checkout + TAB és az ágak listája.

Vagy beírhatom a git checkout feb* + TAB parancsot, hogy az összeset megszerezzem “feb” betűvel kezdődő ágak.

Hogyan érhetem el ezt a funkciót Mac gépen?

Próbáltam letölteni és futtatni a bash-completion/bash_completion és bash-completion/bash_completion.sh.in, de nem öröm. Az első hibaüzeneteket adott a következővel kapcsolatban: declare: -A invalid_option. A második nem adott hibát. Amikor I git checkout + TAB bár még mindig a fájlok listáját kapom a könyvtárban, nem az ágakat. A projekt gyökerében vagyok.

Automatikus kitöltés könyvtárakhoz és A bash parancsok rendben működnek, tehát Gitre jellemzőek.

Megjegyzések

  • Most csatlakoztam ehhez a közösséghez, így ‘ még nem tudok válaszolni, de megtaláltam ” oh-my-zsh ” hogy nagyon szuper hasznos legyek, és nagyon szeretem a kezelőfelületet: github.com/ohmyzsh/ohmyzsh Ez természetesen a zsh-t használók számára szól. Én ‘ m feltételezve, hogy nem ‘ nem működik a bash számára …

Válasz

rendben, ezért szükségem volt a git automatikus kiegészítés parancsfájlra.

Ezt erről az URL-ről kaptam:

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

Nem kell aggódnia, hogy milyen könyvtárban tartózkodik, amikor ezt otthoni könyvtárként futtatja (~) használja a céllal.

Ezután hozzáadtam a ~/.bash_profile fájlomhoz a következő” végrehajtást, ha létezik “kódot:

if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi 

Frissítés: tömörebbé teszem ezeket a kódbiteket, hogy lecsökkentsem az .bashrc fájlomat, ebben az esetben Most a következőket használom:

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

Megjegyzés: $_ az előző parancs utolsó argumentumát jelenti. tehát . $_ azt jelenti, hogy futtatja – “ez” .git-completion.bash ebben az esetben

Ez továbbra is működik az Ubuntu és a OSX és a szkript nélküli .git-completion.bash szkript nélküli gépeken.

Most git fül ( valójában “s git Tab fül ) varázslatként működik!

ps: Ha ez nem történik meg “Ne dolgozzon le, előfordulhat, hogy a chmod u+x ~/.git-completion.bash parancsot kell futtatnia ahhoz, hogy megadja a szükséges engedélyt:

  • chmod a fájlengedélyeket módosító parancs.
  • u azt a felhasználót jelenti, aki a fájl tulajdonosa, alapértelmezés szerint az alkotója, azaz Ön
  • + engedély megadása / aktiválása / hozzáadása
  • x engedély végrehajtása, vagyis a szkript

Megjegyzések

  • Igen, a bash parancsfájl hozzáadása után indítsa újra a terminált. Itt ültem és azon töprengtem, miért próbálta folytatni az automatikus kiegészítést a Models mappámba, amikor a m Tab, hogy az automatikus kiegészítés master legyen.
  • Lásd még: unix.stackexchange.com/q/ 48862/10043 egy másik tippért
  • Ha az elfogadott válasz nem ‘ senki számára nem működik, próbálkozzon ezzel: source ~/.bash_profile a kód beillesztése után. A terminál újraindítása szintén ugyanezt teszi.
  • Köszönjük! Próbáltam néhány más dolgot, de semmi sem működött (beleértve ezt: github.com/bobthecow/git-flow-completion/wiki/… ). Megoldása varázslatként működött;)
  • (nem ‘ nem főzött git, de az Apple alapértelmezett git) brew install git és indítsa újra a terminált azok számára, akik olyan furcsa hibákkal szembesülnek, mint 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>]

Válasz

Vannak, akik inkább egy csomagkezelőt használnak a Mac OS csomagok telepítésének, frissítésének és konfigurálásának automatizálásához. Rajongok a csomagkezelőkért, és azt hiszem, hogy a Homebrew a legjobb csomagkezelő a Mac OS számára (egyesek azt mondják, hogy ez a tényleges Mac OS csomagkezelő).

Miután telepítette a Homebrew-t, egyszerűen telepítheti a git alkalmazást a bash-befejezés a következővel: brew install git bash-completion.

Ezután be kell írnia a következőt a ~/.bash_profile fájlba:

if [ -f `brew --prefix`/etc/bash_completion.d/git-completion.bash ]; then . `brew --prefix`/etc/bash_completion.d/git-completion.bash fi 

(Megjegyzés: Ha ez a telepítés nem sikerül 404-es hibával, és már telepítve van a git, egyszerűen távolítsa el ennek a sörtelepítésnek a git részét)

További információ a git és a bash-complete with brew telepítéséről itt.

Megjegyzések

  • A git és a bash-completion hozzáadása egyáltalán nem azonos a .git-completion.bash hozzáadásával. Különböző programok, és egészen más dolgokat csinálnak – bash parancsot hajtanak végre autocompletion, a másik pedig git parancsot ad automatikus kiegészítésre és ‘ nair-re, amellyel a twain találkozni fog;)
  • varázsként működik, nagyon köszönöm. Meg tudná magyarázni, mi a a szkript használata, amelyet felvettél a ~/.bash_profile fájlba?
  • Annak ellenére, hogy mások mondták ezt a választ, a git automatikus kiegészítés működése i n terminál.
  • Ne feledje, hogy a ~/.bash_profile beillesztendő sorokat számomra a homebrew kimenetében adtam meg. Ezeket használtam a fenti sorok helyett. Ezután újra be kell töltenie a bash profilt minden terminálablakban, amelyben használni szeretné az automatikus kiegészítést, a source ~/.bash_profile

Válasz

Futtassa ezt a terminálon:

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

Ezután tegye:

vi ~/.bash_profile 

Add hozzá ezeket a sorokat:

if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi 

Ez minden. Ez nekem bevált.

Megjegyzések

  • (2. lépés) Ha valaki inkább egy szövegszerkesztővel nyitja meg a bash_profile fájlt, tegye a következőket: nyissa meg az -e .bash_profile
  • Szűz Mac OS High Sierra rendszeren a ~/.bash_profile fájl nem létezik ‘. Ez ‘ rendben van, csak hozza létre a fájlt, és helyezze be a if szkriptet, és mentse. Utána töltse be újra a shelljét, és működni fog.
  • Ez bevált én. A vi helyett (amellyel mindig küzdök) csak nyisd meg az -e ~ / .bash_profile
  • A 2. lépéshez ez a link

Válasz

git és git-completion.bash már jönnek a macOS parancssori eszközökkel (xcode-select --install). Az bash automatikus kiegészítés engedélyezéséhez adja hozzá ezt a ~/.bash_profile fájlba.

[ -f /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash ] && . /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash 

Ez engedélyezi az automatikus kiegészítést a git ágaknál is.

Megjegyzések

  • Nagyon biztos, hogy ‘ parancssori eszközöket telepítettem, de a fájl nem ‘ nem létezik esetemben. Örülök, hogy bár főzök (és mivel én is főzök, talán bölcsebb is).
  • Köszönöm! IMO, erre a zöld pipával kell válaszolni.
  • Ez a legegyszerűbb megoldás, és nekem is működik
  • Ez nekem bevált – bár kissé más formátumot használtam . 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
  • számomra a válasz működött, de miután hozzáadta az adott sort a ~/.bash_profile sorhoz, ne felejtsen el futtatni source ~/.bash_profile (különösen, ha először hozza létre a ~/.bash_profile fájlt)

Válasz

Íme, mi zavarba ejtő néhányat: Ön főzött vagy portokat telepített, de a rendszer gitjét használja a . Ennek ellenőrzéséhez:

which git 

Ha a /usr/bin/git üzenetet látja, akkor vagy a főzés nincs megfelelően beállítva, vagy Ön ” Még nem telepítette a git-t a brew-on keresztül.

Ha a git-t a brew-on keresztül telepíti, akkor a bash-kiegészítések engedélyezése a brew-hoz a bas-os kiegészítéseket is lehetővé teszi a git-nél. Ez azért van, mert a /usr/local/etc/bash_completion valójában mindent a /usr/local/bash_completion.d fájlban tárol, és a git brew csomagja telepít egy git befejező szkriptet.

Megjegyzések

  • Ennek van értelme, de hogyan ” engedélyezné a bash kiegészítéseket a főzéshez “? ‘ hiányzik ennek a módja, ennek része kell lennie a válaszának.
  • Csak ezt tettem (működik, köszönöm) a simplified.guide/macos/bash-completion , de az automatikus befejezés néhány másodpercet késik … páratlan

Válasz

Git automatikus kiegészítés a Catalinán és újabbakon (a Homebrew használatával)

A makO-k bash zsh mint alapértelmezett héj, kezdve a Catalina-val.
Tehát megteszi speciális autocomplete parancsfájlokra van szükségük a zsh számára.

Az alábbiak szerint telepítheti őket Homebrew-val:

brew install zsh-completion 

A Brew zsh-befejezése valójában magában foglalja a git-kiegészítést is.

Az automatikus kiegészítés aktiválásához hozzá kell adnia egy kis kódblokkot a ~/.zshrc fájljához. Lehet, hogy létre kell hoznia a fájlt a felhasználói mappában, ha még nem létezik. Megjegyzés: A fenti telepítő szkript kimenete pontosan megmondja, milyen kódot kell hozzáadni, ezért olvassa el figyelmesen, és másolja onnan abban az esetben, ha az ide írása óta frissült.

if type brew &>/dev/null; then FPATH=$(brew --prefix)/share/zsh-completions:$FPATH autoload -Uz compinit compinit fi 

Fontos:
Amikor a telepítés befejeződött, beolvassa a fájlt a telepítési parancsfájlból.
Ez arra utasítja Önt, hogy ne adjon hozzá kódot a .zshrc fájlhoz, hanem tanácsokat is ad a további szükséges lépésekről, például a zcompdump erő újjáépítéséről. De valószínűleg nem lesz szükséged a további lépésekre.

Megjegyzések

  • A terminál minden alkalommal megjelenít egy idegesítő üzenetet, amikor ‘ s megnyílt: zsh compinit: insecure directories, run compaudit for list. Ignore insecure directories and continue [y] or abort compinit [n]? De működik!
  • Most csatlakoztam ehhez a közösséghez, hogy ‘ t még válaszol, de úgy találtam, hogy ” oh-my-zsh ” szuper nagyon hasznos, és nagyon szeretem a kezelőfelületet: github.com/ohmyzsh/ohmyzsh Ez természetesen a zsh-t használók számára szól. Én ‘ m feltételezve, hogy nem ‘ nem működik a bash számára …

Válasz

A bash és a git telepíthető a MacPorts portálról, ha a “bash_completion” opció engedélyezve van. Valószínűleg ez a legegyszerűbb módszer a git és a befejezések naprakészen tartására.

A MacPorts telepítéséhez: http://www.macports.org/install.php/

További információ

A Linux rendszer befejezési beállításainak megkeresésével kapcsolatban nézze meg az / etc könyvtárat /bash_completion.d/git (ez egy hosszú fájl). Ennek önmagában való másolása valószínűleg nem fog működni, mivel azt a befejezési keretrendszer az / etc / bash_completion (amely az /etc/profile.d/bash_completion.sh fájlból származik; fájlok az / etc / profile fájlból származnak). A .d fájlok az / etc / profile fájlból származnak.

Válasz

Ha a git befejezése részben megszakadt, még a forrás után is https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash, lehet, hogy csak frissítenie kell a git verzióját.

Például amikor beírtam a git check + TAB, ez helyesen automatikusan kitölti a git checkout -t. De amikor beírtam a git checkout + TAB, nem az ágak listáját jelenítette meg, csak HEAD.

Számomra a javítás a git verzió. A 2.7.0 verziót használtam, amely látszólag nem volt kompatibilis a legújabb git-completion.bash verzióval. Futtattam brew upgrade git, amely 2.13.0-ra frissítette, és most prop erly automatikusan kitölti a fiókneveimet.

Megjegyzések

  • Ugyanaz a probléma jelentkezett, de le kellett futtatnom a brew upgrade git és brew link git (felülbírálás engedélyezve)
  • Köszönöm a @Tope fogást. update -et upgrade -re változtattam.

Válasz

Messze a legjobb referencia, amelyet erre a kérdésre találtam, az SpinDance , Connor Livingston :

Ha a git- complete.bash parancsfájl nem létezik a számítógépén, kérjük, töltse le azt a fenti linkről (amely ez ), és mentse el a helyi gépre egy új fájlba: git-complete.bash a /usr/local/etc/bash_completion.d/ könyvtár. Ha létezik a git-complete.bash parancsfájl gépén, de nincs a /usr/local/etc/bash_completion.d/ könyvtárban, létre kell hoznunk egy másolatát abban a könyvtárban. Gyors sudo cp /current/path/to/your/git-completion.bash /usr/local/etc/bash_completion.d/git-completion.bash nek kell cseleznie. Azok számára, akik kíváncsi a /usr/local/etc/bash_completion.d/ könyvtárra: új befejezési parancsok tárolására szolgál, és lehet, hogy létre kell hoznia, ha még nem létezik a gép.

Ezen a ponton a git-complete.bash parancsfájlnak léteznie kell a helyi gépen az /usr/local/etc/bash_completion.d/ könyvtárban. Most a git befejező szkriptet bedugjuk a bash-ba úgy, hogy a ~ / .bash_profile ról mutatunk rá.

Megjegyzés: az előző mondat tilde a számítógép saját könyvtárára utal. Adja hozzá a következő sort a ~ / .bash_profile fájlhoz: forrás /usr/local/etc/bash_completion.d/git-completion.bash és mentse. Az utolsó lépés a bash profil újratöltése. Ezt úgy érheti el, hogy a forrás ~ / .bash_profile futtatja az aktuális bash munkamenetben.

Válasz

Telepítse a oh-my-zsh és állítsd be a zsh-t alapértelmezett shellként, és köszönöm később 🙂

Megjegyzések

  • Tettem ezt, pontosan annak reményében, hogy nincs kezelni – még mindig nincsenek fiókjavaslatok a lapra kattintás után. A Git befejezése a dobozból jön ki, csak engedélyezned kell.

Válasz

Próbálta és megpróbálta jól működik az elágazásoknál, de ha git st + tab műveletet végez, akkor az ilyen hibát mutatja

ismeretlen opció: –list-cmds = list-mainporcelain, mások, nohelpers, alias, list-complete, config use: git [–version] [–help] [-C] [-c =] [–exec-path [=]] [–html-path] [–man-path] [–info-path] [-p | –paginál | –no-pager] [–no-Replace-Objects] [–bare] [–git-dir =] [–work-tree =] [–névtér =] []

Az interneten keresve megállapította, hogy a --list-cmds a .git-completion.bash fájlban a git és a mac gépemen a git verzió 2.17.2

Itt vannak a megoldások

1. megoldás

  1. Ellenőrizze a git verzióját a git --version paranccsal
  2. Ezután tegye ugyanazt a verziószámot az url-be, mint én

    curl https://raw.githubusercontent.com/git/git/v2.17.2/contrib/completion/git-completion.bash -o ~/.git-completion.bash 
  3. Ezután kövesse ugyanazokat a lépéseket, mint a felső válaszban, és írja be az alábbi kódot a ~/.bash_profile

    if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi 

2. megoldás

Meg kell próbálni frissíteni a git verzióját a legújabbra, akkor működnie kell.

Válasz

A legtöbb felhasználó git -t telepít az xcode parancssor részeként eszközök a /usr/bin/git és a bash completeio címen A gitre vonatkozó n szabály a /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash címen érhető el.

Ebben az esetben nincs szükség a git telepítésére a Homebrew webhelyről vagy a forrás git befejezési szabályokra a raw.githubusercontent.com webhelyről. Csak hozzon létre egy szimlinket az alábbiak szerint:

cd /usr/local/etc/bash_completion.d/ ln -s /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash git 

Megjegyzés: Győződjön meg róla, hogy telepítette és konfigurálta a bash-completion csomagot Homebrew.

Válasz

MacOS Catalina + esetén: zsh:

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.zsh -o ~/.git-completion.zsh 

Ezután frissítse a ~/.zshrc fájlt a következővel:

if [ -f ~/.git-completion.zsh ]; then . ~/.git-completion.zsh fi 

Válasz

Keresse meg a .bashrc fájlt.

Nyissa meg, és adja hozzá ezt sor alul:

source /etc/bash_completion.d/git

Megjegyzések

  • Nem ‘ nincs /etc/bash_completion.d/ mappa egy viszonylag új rendszeren (OSX 10.10.3).
  • Próbálja létrehozni ez.
  • Nem bash_completion, git_completion, amely különböző dolgokat végez.
  • @MichaelDurrant Működik. Bízz bennem.;) prowrestlingtees.com / media / catalog / product / cache / 1 / image / …
  • @crmpicco Tudna útmutatást adni a /etc/bash_completion.d/git létrehozásához? Értékesebbé tenné válaszát.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük