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 am
Tab
, hogy az automatikus kiegészítésmaster
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értelmezettgit
)brew install git
és indítsa újra a terminált azok számára, akik olyan furcsa hibákkal szembesülnek, mintgit 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 abash-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, asource ~/.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 aif
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 futtatnisource ~/.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
ésbrew link git
(felülbírálás engedélyezve) - Köszönöm a @Tope fogást.
update
-etupgrade
-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
- Ellenőrizze a git verzióját a
git --version
paranccsal -
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
-
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.