web-dev-qa-db-fra.com

Comment ajouter plus de commandes à Git Bash?

Je travaille sur la machine Windows et j'utilise bash Shell fourni avec Git. Mais il existe de nombreux utilitaires qui manquent dans cette version de bash Shell.

Comment puis-je installer plus de commandes sur ce shell?

55
Ankit Zalani

Il y a deux versions de Git que vous utiliserez probablement - le msysgit distribution ou Cygwin .

Installation d'utilitaires supplémentaires pour Cygwin

Même si vous n’avez peut-être installé Git que dans le cadre de votre installation Cygwin (si vous avez utilisé Cygwin), Cygwin dispose d’un programme appelé setup.exe que vous pouvez utiliser pour ajouter des packages. Essentiellement, tout ce que vous avez à faire est d’exécuter setup.exe et de choisir les programmes à installer lorsque vous accédez à la fenêtre Select Packages . L'introduction ici fournit un bon aperçu avec des images détaillant le processus.

Le programme d’installation de Cygwin est assez intelligent pour comprendre que vous avez une installation préexistante et il ajoutera des packages à votre installation (au lieu de la remplacer et de recommencer).

MSYS

L'autre version de Git que vous utilisez probablement (sinon Cygwin) est msysgit. Dans la mesure où msysgit installe un environnement minimal Unix peu compatible avec MinGW, vous devrez installer la suite MinGW à côté de msysgit. La page MinGW Mise en route donne un aperçu détaillé de la procédure à suivre pour installer MinGW. Étant donné que je n’ai aucune expérience personnelle de MinGW, tout ce que je peux faire est de vous référer à leurs instructions.

Vous devrez ensuite migrer votre installation msysgit vers MinGW. Ceci peut être accompli en procédant comme suit (tiré de ici ). Une fois la séquence suivante effectuée, MinGW devrait rechercher votre installation Git.

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
14
new123456

Si vous utilisez msysgit, une option simple consiste simplement à installer MinGW , puis à ajouter le chemin MINGW au fichier .bashrc que vous utilisez pour votre installation Git:

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

... où MINGW est où vous avez installé MinGW

De cette façon, vous pouvez utiliser les outils MinGW directement depuis votre installation Git bash. Si vous avez besoin d'un autre outil bash, vous pouvez simplement l'installer dans MinGW.

4
Arnaldo C

Avec les récents Git pour Windows installations, il est assez facile d’installer des scripts et programmes Shell supplémentaires.

Je recommande d'installer git avec chocolateychoco install git, car vous pouvez mettre à jour git (et tous les autres outils installés avec chocolatey) en exécutant choco upgrade all.

Il suffit de mettre les exécutables dans C:\Program Files\Git\usr\bin (%ProgramFiles%\Git\usr\bin).

Exemple pour git-fresh

Copiez le fichier git-fresh dans C:\Program Files\Git\usr\bin.

Exemple pour adr-tools

  1. Téléchargez un package Zip à partir de la page releases
  2. Décompressez le paquet
  3. Copier tout le contenu de src/ dans C:\Program Files\Git\usr\bin
3
koppor

J'ai trouvé une réponse assez simple aujourd'hui qui a fonctionné pour rsync.

  1. Installez git bash pour Windows
  2. Téléchargez rsync depuis futureware.at *
  3. Extraire n'importe où, je choisis C:\rsync-3.1.2-2-x86_64.pkg
  4. Ajoutez le dossier bin en haut de votre chemin système

* Je ne sais pas qui est derrière Futureware.at, je préférerais créer un lien vers une source plus primaire.

0
geneorama

Vous pouvez télécharger des unités Unix supplémentaires Wget, Hugo, Xpdf, make, Nano à partir d’ici: https://Gist.github.com/evanwill/0207876c3243bbb6868e65ec5dc3f058

Wget

  • Téléchargez le dernier fichier binaire wget pour windows à partir de eternallybored (ils sont disponibles sous forme de fichier Zip avec documentation ou tout simplement un fichier exe)
  • Si vous avez téléchargé le fichier Zip, extrayez tout (si Windows construit dans l'utilitaire Zip donne une erreur, utilisez 7-Zip ).
  • Renommez le fichier wget64.exe en wget.exe si nécessaire.
  • Déplacez wget.exe vers votre Git\mingw64\bin\.

Remarque: j'ai remarqué quelques bugs lors de l'utilisation de Wget sur Git Bash pour créer des fichiers WARC. Pour une utilisation plus complexe de Wget, considérons plutôt Cygwin .

Hugo

Hugo le générateur de site statique peut être téléchargé en tant que fichier binaire et ne dispose pas d'un programme d'installation. Le déposer dans votre bin l'ajoute facilement à votre chemin Git Bash. Prenez la version Windows 64 bits à partir de la page des versions . Décompressez le téléchargement, puis copiez hugo.exe dans votre répertoire Git\mingw64\bin.

Xpdf

Xpdf est un utilitaire pratique pour manipuler des fichiers PDF.

  • Téléchargez le version Windows "Outils Xpdf" .
  • Extrait Zip.
  • Copiez le contenu de xpdf-tools-win-4.00\bin64\ dans votre Git\mingw64\bin\.
  • Consultez la docs _ pour vous familiariser avec des outils tels que pdftotext et pdftopng.

make

  • Allez à ezwinports .
  • Téléchargez make-4.1-2-without-guile-w32-bin.Zip (obtenez la version sans astuce).
  • Extrait Zip.
  • Copiez le contenu dans votre Git\mingw64\ fusionnant les dossiers, mais ne remplacez/remplacez aucun fichier existant.

Nano

À compter de 2018, les versions récentes de Git Bash incluent Nano, c'est donc inutile!

  • Téléchargez le fichier binaire Nano à partir de la page Nano win32-support . Vous avez juste besoin du fichier .exe, nommé nano-git-0d9a7347243.exe (au moment de l'écriture).
  • Renommez le fichier en nano.exe et copiez-le dans le répertoire mingw64\bin.
  • Cette version de Nano ne fonctionnera pas avec Git Bash seul, mais peut être invoquée en utilisant winpty, par exemple, winpty nano test.txt.
0
GKislin

On pourrait augmenter le nombre de fonctionnalités de git-bash en créant des scripts et les appeler en les définissant dans le fichier ~/.bash_profile.

Exemple

Si vous souhaitez utiliser la commande watch, alors ce script peut être ajouté au ~/.bash_profile:

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

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

et l'envelopper dans une fonction:

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

Dès que l'on enregistre le fichier et exécute source ~/.bash_profile, on devrait pouvoir regarder le résultat des commandes.

0
030

J'ai essayé ce qui suit et installé emacs sur git-bash .. 1. Installez msys2 quelque part (il ne doit pas nécessairement s'agir du même ordinateur). 2. Sous msys2, exécutez ce qui suit:

   cd /tmp
    mkdir -p var/lib
    cp -R /var/lib/pacman var/lib/
    pacman -Sr /tmp emacs
    tar zcf emacs.tar.gz usr
  1. Copiez emacs.tar.gz où vous pouvez accéder depuis git-bash, puis sous git-bash:

    tar zxf emacs.tar.gz -C/emacs

C'est tout, bonne chance.

Après le premier post, j'ai essayé un autre ordinateur mais je ne travaillais pas. Il se trouve que certaines DLL sont manquantes dans git-bash. Ensuite, j'ai testé sur une machine virtuelle propre en procédant comme suit:

  1. Installez msys2-x86_64-20180531 et Git-2.19.1-64-bit .

  2. Mettez à jour msys2, ouvrez la console msys64 et exécutez:

    pacman -Syyu
    

    Fermez la console msys64 à l'invite, puis réexécutez la commande ci-dessus.

  3. Obtenez les fichiers emacs comme dans les étapes précédentes (procédez comme suit dans msys64):

    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: J'ai déjà essayé les étapes ci-dessus dans/d/tmp au lieu de/tmp et je n’ai pas pu y installer emacs.

  4. Ouvrez git-bash et extrayez les fichiers emacs:

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

    Il va se plaindre manquant bibliothèque partagée "?" en essayant de lancer Emacs maintenant. Le "?" ne sera révélé à aucun lisible

  5. Retournez à msys64 et récupérez les dlls msys2:

    ls --color=never /bin/*.dll > /c/tmp/1.txt
    
  6. Dans git-bash, comparez les dll avec 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
    

    Dans mon cas, il y a 26 dll dans diff_dlls.txt.

  7. Copiez les dll de msys64 dans git-bash:

    Dans msys64:

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

    En git-bash:

    cp /c/tmp/dlls/* /bin
    
  8. Tout est terminé, maintenant emacs s'exécute en git-bash. Certaines des 26 dll ne sont peut-être pas nécessaires, mais je préférerais gagner du temps plutôt que de l'espace disque.

0
chenxin

Si vous utilisez Git bash pour Windows (MinGW64), j’ai eu beaucoup de mal à faire ajouter rsync. continué à avoir l'erreur: dup () in/out/err a échoué

Au lieu de cela, utiliser Cygwin a finalement fonctionné.

Mesures prises pour utiliser rysnc dans Gitbash pour Windows

  1. Installer gitbash pour Windows
  2. Installez cygwin64
  3. Ajoutez le chemin cygwin à la variable de chemin Windows

    Windows-> Système-> Réglages avancés-> Variables d'environnement

    Ajouter un chemin pour C:\cygwin64\bin \

  4. Fermer et ré-ouvrir gitbash Maintenant, gitbash trouvera le fichier rsync.exe dans le répertoire cygwin\bin
  5. Je recevais une erreur de version incompatible pour cygwin1.dll

    *** erreur fatale - incompatibilité base cygheap détectée

  6. Bien que certains aient dit qu'un redémarrage règlerait ce problème, ce n'était pas le cas.
  7. Pour résoudre l'erreur de version, j'ai copié le répertoire cygwin\bin à partir d'une ancienne version de cygwin - la version 1.7.30 a fonctionné.
0
Mike

installer "Git pour Windows SDK" (aller au bas de https://gitforwindows.org/ qui fournit un lien pour télécharger le programme d’installation depuis https://github.com/git-for-windows/build-extra/releases/latest )

https://stackoverflow.com/questions/32712133/package-management-in-git-for-windows/52105321#52105321

0
rofrol