Wie füge ich weitere Befehle zu Git Bash hinzu?

63

Ich arbeite an Windows-Maschine und ich benutze Bash-Shell, die mit Git kommt. Aber es gibt viele Dienstprogramme, die in dieser Version der Bash-Shell fehlen.

Wie kann ich weitere Befehle auf dieser Shell installieren?

Ankit Zalani
quelle
3
Was hast du versucht?
030
3
many utilities are missing in this version of bash shell. Bitte geben Sie an, welche Befehle fehlen, die Sie verwenden möchten.
030
3
Unter serverfault.com/a/872557/212162 finden Sie eine viel aktuellere und einfachere Methode zur Verwendung von Dienstprogrammen, die nicht standardmäßig enthalten sind.
nextgentech

Antworten:

16

Es gibt zwei Versionen von Git, die Sie wahrscheinlich verwenden werden - die msysgit- Distribution oder Cygwin .

Zusätzliche Hilfsprogramme für Cygwin installieren

Obwohl Sie Git möglicherweise nur als Teil Ihrer Cygwin-Installation installiert haben (wenn Sie Cygwin verwendet haben), verfügt Cygwin über ein Programm namens setup.exe, mit dem Sie Pakete hinzufügen können. Im Wesentlichen müssen Sie nur ausführen setup.exeund auswählen, welche Programme installiert werden sollen, wenn Sie zum Fenster Select Packages (Pakete auswählen) gelangen . Die Einführung hier bietet einen guten Überblick mit Bildern, die den Prozess detailliert darstellen.

Cygwins Installationsprogramm ist klug genug, um festzustellen, dass Sie bereits eine Installation haben, und es fügt Ihrer Installation Pakete hinzu (anstatt sie zu vernichten und von vorne zu beginnen).

MSYS

Die andere Version von Git, die Sie wahrscheinlich verwenden (wenn nicht Cygwin), ist msysgit. Da msysgit eine minimale Unix-Umgebung installiert, die nicht wirklich mit MinGW kompatibel ist, müssen Sie die MinGW-Suite neben msysgit installieren. Die MinGW Erste Schritte Seite gibt einen detaillierten Überblick darüber , wie etwa gehen immer MinGW installiert - da ich keine Erfahrung mit MinGW persönlich haben, alles , was ich wirklich tun können Sie ihre Hinweise.

Anschließend müssen Sie Ihre msysgit-Installation in MinGW migrieren. Dies kann folgendermaßen erreicht werden (siehe hier ). Nachdem die folgende Sequenz durchgeführt wurde, sollte MinGW Ihre Git-Installation finden.

cd GITDIR # Where GITDIR is wherever inside Program Files you put Git
cp bin/git* /MINGW/bin # Where MINGW is wherever you put MinGW
cp -r libexec/git* /MINGW/libexec
cp -r share/git* /MINGW/share
new123456
quelle
2
Wenn Sie sich fragen, versuchen Sie nicht, das Cygwin-Installationsprogramm für das msysgit-Paket zu verwenden. Es funktioniert teilweise ... aber beim Auflösen von Abhängigkeiten wird sh.exe ersetzt (was Ihre Umgebung erheblich verändert).
Chris Betti
5
Woher weiß ich, ob mein Git-Bash Cygwin oder msys verwendet?
lmo
7
Ich habe von git-scm.com/download/win installiert. Ist das msysgit oder cygwin? EDIT Fand es heraus. Anstatt diesen Kommentar zu löschen, sage ich, dass es msysgit ist.
Eingeschränktes Sühnopfer
3
@LimitedAtonement - Bitte geben Sie auch an, wie Sie es herausgefunden haben, für andere Leser (wie mich), die sich dieselbe Frage gestellt haben.
Ioanna
4
Sie können feststellen, was Sie installiert haben, indem Sie uname -oim Bash-Terminal ausführen.
Cliff Armstrong
5

Mit den neuesten Git für Windows- Installationen ist das Installieren zusätzlicher Shell-Skripte und -Programme ziemlich einfach.

Ich empfehle, git mit chocolatey zu installieren choco install git, da Sie git (und alle anderen mit chocolatey installierten Tools) durch Ausführen von aktualisieren können choco upgrade all.

Fügen Sie einfach die ausführbaren Dateien in C:\Program Files\Git\usr\bin( %ProgramFiles%\Git\usr\bin) ein.

Beispiel für git-fresh

Kopieren Sie die Datei git-fresh nach C:\Program Files\Git\usr\bin.

Beispiel für ADR-Tools

  1. Laden Sie ein Zip-Paket von der Veröffentlichungsseite herunter
  2. Packen Sie das Paket aus
  3. Kopieren Sie alles von src/inC:\Program Files\Git\usr\bin
koppor
quelle
4

Wenn Sie msysgit verwenden, können Sie einfach MinGW installieren und dann den MINGW-Pfad zur .bashrc-Datei hinzufügen, die Sie für Ihre Git-Installation verwenden:

    PATH=$PATH:/MINGW/msys/1.0/bin

... wo MINGW ist, wo Sie MinGW installiert haben

Auf diese Weise können Sie die MinGW-Tools direkt aus Ihrer Git-Bash-Installation verwenden. Wenn Sie ein anderes Bash-Tool benötigen, können Sie es einfach in MinGW installieren.

Arnaldo C
quelle
1

Sie können weitere Unix-Einheiten Wget, Hugo, Xpdf, make, Nanohier herunterladen : https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058

Wget

  • Laden Sie die neueste wget-Binärdatei für Windows von eternallybored herunter (sie sind als zip mit Dokumentation oder nur als exe verfügbar).
  • Wenn Sie die ZIP-Datei heruntergeladen haben, extrahieren Sie alle Dateien (wenn das in zip integrierte Windows-Dienstprogramm einen Fehler anzeigt, verwenden Sie 7-zip ).
  • Benennen Sie die Datei wget64.exezu , wget.exewenn nötig.
  • Bewegen Sie sich wget.exezu Ihrem Git\mingw64\bin\.

Hinweis: Ich habe einige Fehler bei der Verwendung von Wget auf Git Bash zum Erstellen von WARC-Dateien festgestellt. Für eine komplexere Verwendung von Wget sollten Sie stattdessen Cygwin in Betracht ziehen .

Hugo

Der statische Site-Generator von Hugo kann als Binärdatei heruntergeladen werden und verfügt nicht über ein Installationsprogramm. Durch Ablegen in Ihrem wird bines Ihrem Git Bash-Pfad hinzugefügt. Laden Sie die 64-Bit-Version von Windows von der Seite mit den Veröffentlichungen herunter . Entpacken Sie den Download und kopieren Sie ihn hugo.exein Ihr Git\mingw64\binVerzeichnis.

Xpdf

Xpdf ist ein praktisches Dienstprogramm zum Bearbeiten von PDF-Dateien.

  • Laden Sie die Windows-Version "Xpdf tools" herunter .
  • Reißverschluss herausziehen.
  • Kopieren Sie den Inhalt von xpdf-tools-win-4.00\bin64\in Ihren Git\mingw64\bin\.
  • Überprüfen Sie die Dokumentation , um mit Tools wie pdftotextund zu beginnen pdftopng.

machen

  • Gehe zu ezwinports .
  • Download make-4.1-2-without-guile-w32-bin.zip(Version ohne Täuschung herunterladen).
  • Reißverschluss herausziehen.
  • Kopieren Sie den Inhalt in Ihre Git\mingw64\Zusammenführung der Ordner, überschreiben / ersetzen Sie jedoch KEINE vorhandenen Dateien.

Nano

Ab 2018 enthalten neuere Versionen von Git Bash Nano, daher ist dies nicht erforderlich!

  • Laden Sie die Nano-Binärdatei von der Nano- Win32-Support- Seite herunter . Sie brauchen nur die .exeDatei, die (zum nano-git-0d9a7347243.exeZeitpunkt des Schreibens) benannt ist.
  • Benennen Sie die Datei in um nano.exeund kopieren Sie sie in das mingw64\binVerzeichnis.
  • Diese Version von Nano wird nicht allein mit Git Bash arbeiten, aber kann mit aufgerufen werden winpty, zum Beispiel winpty nano test.txt.
GKislin
quelle
1

Ich habe heute eine ziemlich einfache Antwort gefunden, die funktioniert hat rsync.

  1. Installieren Sie Git Bash für Windows
  2. Download rsyncvon futureware.at *
  3. Ich entscheide mich für einen Auszug C:\rsync-3.1.2-2-x86_64.pkg
  4. Fügen Sie den Ordner bin oben im Systempfad hinzu

* Ich weiß nicht, wer hinter futureware.at steckt, ich würde es vorziehen, auf eine primärere Quelle zu verlinken.

genorama
quelle
@mike deine antwort ist ähnlich, nur dass ich cygwin64
geneorama
1

Ich habe Folgendes versucht und Emacs auf Git-Bash installiert. 1. Installieren Sie msys2 irgendwo (muss nicht derselbe Computer sein). 2. Führen Sie unter msys2 Folgendes aus:

   cd /tmp
    mkdir -p var/lib
    cp -R /var/lib/pacman var/lib/
    pacman -Sr /tmp emacs
    tar zcf emacs.tar.gz usr
  1. Kopieren Sie emacs.tar.gzin das Verzeichnis, auf das Sie von git-bash aus zugreifen können, und klicken Sie dann unter git-bash auf:

    tar zxf emacs.tar.gz -C / emacs

Das ist alles, viel Glück.

Nach dem ersten Beitrag habe ich versucht, einen anderen Computer, aber nicht funktioniert. Es stellt sich heraus, dass einige DLLs in Git-Bash fehlen. Dann habe ich in einer sauberen virtuellen Maschine mit den folgenden Schritten getestet:

  1. Installieren Sie msys2-x86_64-20180531 und Git-2.19.1-64-bit .

  2. Aktualisieren Sie msys2, öffnen Sie die msys64-Konsole und führen Sie Folgendes aus:

    pacman -Syyu
    

    Schließen Sie die msys64-Konsole, wenn Sie dazu aufgefordert werden, und führen Sie den obigen Befehl erneut aus.

  3. Holen Sie sich die Emacs-Dateien wie in den vorherigen Schritten beschrieben (führen Sie in msys64 Folgendes aus):

    cd /tmp
    mkdir -p var/lib
    cp -R /var/lib/pacman var/lib/
    pacman -Sr /tmp emacs
    tar zcf emacs.tar.gz usr
    mv emacs.tar.gz /c/tmp
    

    ps: Ich habe die obigen Schritte einmal in / d / tmp anstelle von / tmp versucht und konnte keine Emacs darauf installieren.

  4. Öffne git-bash und extrahiere die Emacs-Dateien:

    cd /c/tmp
    tar zxf emacs.tar.gz -C /
    

    Es wird das Fehlen einer gemeinsam genutzten Bibliothek "?" auf dem Versuch, Emacs jetzt laufen zu lassen. Das "?" wird nicht zu einem lesbaren enthüllt

  5. Gehen Sie zurück zu msys64 und holen Sie sich die msys2-DLLs:

    ls --color=never /bin/*.dll > /c/tmp/1.txt
    
  6. In git-bash vergleiche DLLs mit msys:

    cd /c/tmp
    git init
    git add 1.txt && git commit
    ls --color=never /bin/*.dll | sed 's#\*$##g' > /c/tmp/1.txt
    git diff 1.txt | grep '^-' | sed '1d' | sed 's#^-/bin/##g' > diff_dlls.txt
    

    In meinem Fall gibt es 26 DLLs in diff_dlls.txt.

  7. Kopieren Sie die DLLs von msys64 nach git-bash:

    In msys64:

    mkdir /c/tmp/dlls
    cat /c/tmp/diff_dlls.txt | xargs -I {} cp /bin/{} /c/tmp/dlls
    

    In git-bash:

    cp /c/tmp/dlls/* /bin
    
  8. Alles erledigt, jetzt läuft Emacs in Git-Bash. Einige der 26 DLLs sind möglicherweise nicht erforderlich, aber ich würde es vorziehen, meine Zeit anstelle von Speicherplatz zu sparen.

Chenxin
quelle
0

Bei Verwendung von Git Bash für Windows (MinGW64) fiel es mir sehr schwer, Rsync hinzuzufügen. Fehler weiterhin angezeigt: dup () in / out / err ist fehlgeschlagen

Stattdessen funktionierte die Verwendung von Cygwin schließlich.

Schritte, die ich unternommen habe, um rysnc in Gitbash für Windows zu verwenden

  1. Installieren Sie gitbash für Windows
  2. Installieren Sie cygwin64
  3. Fügen Sie der Windows-Pfadvariablen den Cygwin-Pfad hinzu

    Windows-> System-> Erweiterte Einstellungen-> Umgebungsvariablen

    Fügen Sie einen Pfad für C: \ cygwin64 \ bin \ hinzu

  4. Gitbash schließen und erneut öffnen Jetzt findet gitbash die Datei rsync.exe im Verzeichnis cygwin \ bin
  5. Ich habe einen inkompatiblen Versionsfehler für cygwin1.dll erhalten

    *** Schwerwiegender Fehler - Cygheap-Basiskonflikt festgestellt

  6. Obwohl einige sagten, ein Neustart würde dies beheben, tat es dies nicht.
  7. Um den Versionsfehler zu beheben, habe ich das Verzeichnis cygwin \ bin aus einer älteren Version von cygwin kopiert - Version 1.7.30 funktionierte
Mike
quelle
0

Man könnte die Anzahl der Features in git-bash erweitern, indem man Skripte erstellt und sie durch Definieren in der ~/.bash_profileDatei aufruft.

Beispiel

Wenn man den watchBefehl verwenden möchte , dann könnte dieses Skript dem folgenden hinzugefügt werden ~/.bash_profile:

https://gist.github.com/espaciomore/28e24ce4f91177c0964f4f67bb5c5fda

ARGS="${@}"
clear;
while(true); do
  OUTPUT=`$ARGS`
  clear
  echo -e "${OUTPUT[@]}"
done

und wickle es in eine Funktion:

watch() {
  ARGS="${@}"
  clear;
  while(true); do
    OUTPUT=`$ARGS`
    clear
    echo -e "${OUTPUT[@]}"
  done
}

Sobald man die Datei speichert und ausführt, source ~/.bash_profilesollte man in der Lage sein, die Ausgabe von Befehlen zu beobachten.

030
quelle
-1

hinzufügen rsync

Sie können die rsync-Datei direkt von mysys herunterladen . Suchen Sie einfach auf der Seite nach rsync und wählen Sie die Seite mit dem neuesten Datum / der neuesten Versionsnummer aus.
Entpacke diese Datei ( rsync-3.1.3-1-x86_64.pkg.tar.xz) über

tar -xf rsync-3.1.3-1-x86_64.pkg.tar.xz

Kopieren Sie dann rsync unter ./usr/bin/rsync.exe und fügen Sie es in den Ordner / usr / bin Ihrer Git-Installation ein.
Auf meiner Maschine alsoC:/Program Files/Git/usr/bin/

Sie können den Speicherort Ihrer Git-Installation über sehen

where git

Hier ist ein Hauptrepo von hisplan, das Anweisungen sowie einen Link zur Version 3.1.3-1 auf rsync https://gist.github.com/hisplan/ee54e48f17b92c6609ac16f83073dde6 enthält .

Hinweis: Ich konnte die rsync-3.1.3-1-x86_64.pkg.tar.xzDatei nicht direkt in den Git-Ordner entpacken , da die Berechtigungen dies nicht zuließen. Und Git Bash hat kein Sudo.
Ich konnte es aber problemlos direkt in meinen Downloads-Ordner entpacken.
Das ist auch gut so, denn Sie brauchen rsync.exesowieso nur die Datei.

SherylHohman
quelle