J'utilise "git bash
" sous Windows - c'est git
pour Windows via la bash
intégrée. Apparemment, il utilise le support MINGW/MSYS. (Update from @VonC: It now utilise msys2 puisque msysgit est obsolète depuis le quatrième trimestre de 2015.)
Donc, de nombreux outils MSYS sont déjà installés - de awk
à zcat
. Toutefois, je manque la commande man
et Zip
pour compresser plusieurs fichiers dans un fichier Zip (unzip
existe!).
Où puis-je les installer? Je ne veux pas installer une autre copie du système MINGW! Est-il possible d'ajouter des outils précompilés à l'installation de git bash
?
La commande Zip
peut être installée à partir de GoW (Gnu Sous Windows) . man
n'est pas fourni (trop grand).
Il convient toutefois de noter que si vous uniquement souhaitez ajouter la commande Zip
à partir de GoW, le système complet doit toujours être téléchargé et installé. Ensuite, vous pouvez supprimer les autres commandes du répertoire bin
, tout en veillant toutefois à conserver les dll nécessaires dans le répertoire.
git-archive
, est préparé sans aucune installation, peut créer une archive ZIP.
mkdir workrepo
cd workrepo
git init
cp -r [target_file_or_dir] .
git add .
git commit -m commit
git archive -o ../myarchive.Zip @
cd ..
rm -rf workrepo
Le script suivant peut être utilisable: Zip.sh foo.Zip target_file_or_dir
#!/usr/bin/bash
set -eu
unset workdir
onexit() {
if [ -n ${workdir-} ]; then
rm -rf "$workdir"
fi
}
trap onexit EXIT
workdir=$(mktemp --tmpdir -d gitzip.XXXXXX)
cp -r "$2" "$workdir"
pushd "$workdir"
git init
git add .
git commit -m "commit for Zip"
popd
git archive --format=Zip -o "$1" --remote="$workdir" HEAD
Je suis tellement heureux de partager mon expérience sur cette question que je ne connais pas depuis deux ans depuis le premier jour où j'ai joué avec Groovy. Ma méthode doit avoir git
pour Windows installé sous Windows.
Les étapes pour résoudre ce problème pourraient être suivies:
/c/Program Files/7-Zip
sous Windows 10, comme dans mon cas./c/Program Files/Git/mingw64/bin
. Vous pouvez exécuter la commande ln -s /c/Program Files/7-Zip/7z.exe Zip.exe
.sdk
sous Windows, je suppose. Sinon, ignorez cette étape).Je suis à peu près sûr que cela pourrait vous aider beaucoup. Croyez-moi!
Vous pouvez imiter un petit sous-ensemble de comportement man dans le shell en mappant man <command>
à <command> --help | less
.
Malheureusement, sur ma machine, les alias bash n’ajouteront pas d’indicateurs aux arguments de position, ils essaieront de l’exécuter en tant que commande et échoueront (alias man="$1 --help"
ne fonctionne pas).
Et une fonction appelée man()
n'est pas autorisée!
Heureusement, une combinaison de fonctions bash et d'alias permet de réaliser ce mappage. Mettez le code ci-dessous dans votre ~/.bashrc (créez-en un s'il n'est pas là). N'oubliez pas de source ~/.bashrc
.
# man command workaround: alias can't pass flags, but can't name function man
m() {
"$1" --help | less
}
alias man="m"
Cela ne vous donne pas la page de manuel complète, mais si vous ne recherchez que des informations de base sur une commande et ses indicateurs, vous aurez peut-être besoin de tout cela.
Vous pouvez installer des outils GNU individuels à partir de http://gnuwin32.sourceforge.net/packages.html tels que Zip
.
Ajoutez ensuite "/c/Program Files (x86)/GnuWin32/bin"
à PATH
dans votre script de démarrage tel que .profile
, .bash_profile
, .bashrc
, etc.
Ajouter 7-Zip à gitbash est facile.
Je viens de le faire fonctionner! Sur mon ordinateur portable.
Conclusion: Gitbash fonctionne sous Windows Path, je pense que vous pouvez exécuter n’importe quelle commande que vous avez ajoutée à votre PATH Windows.
Au fait, n'oubliez pas de donner votre avis sur vos résultats si vous essayez ceci.
Voici les étapes que vous pouvez suivre.
Cliquez sur le lien suivant https://sourceforge.net/projects/gnuwin32/files/
Découvrez quelle que soit la commande qui vous manque Ici, j'ai besoin de Zip et de bzip2 pour la commande Zip. Parce que la commande Zip repose sur bzip2.dll à exécuter. Sinon, vous obtiendrez une erreur «erreur lors du chargement des bibliothèques partagées:?: Impossible d'ouvrir le fichier objet partagé: aucun fichier ni répertoire de ce type».
Décompressez les fichiers téléchargés. Ici, je télécharge «Zip-3.0-bin.Zip» pour «Zip.exe» et «bzip2-1.0.5-bin.Zip» pour «bzip2.dll» dans le dossier bin. /bin/.exe
Copiez le fichier exe de commande dans le dossier git-bash Ici, je copie «Zip.exe» et «bzip2.dll» dans\Git\usr\bin.
Lien de référence https://ranxing.wordpress.com/2016/12/13/add-Zip-into-git-bash-on-windows/
En ce qui concerne Zip
, vous pouvez utiliser un script Perl
suivant pour compresser les fichiers:
#!/usr/bin/Perl
use IO::Compress::Zip qw(:all);
$z = shift;
Zip [ @ARGV ] => $z or die "Cannot create Zip file: $ZipError\n";
Si vous le rendez exécutable, nommez-le Zip
et mettez-le dans votre $PATH
, vous pouvez l'exécuter comme suit:
Zip archive.Zipfiles...
cependant, cela ne fonctionnera pas pour les répertoires. Il n'est pas nécessaire d'installer quoi que ce soit, car Perl
et tous les modules requis sont déjà présents dans Git pour Windows installation.
En ce qui concerne man
, au moins pour git
, il existe une documentation appelée comme ceci:
git option --help
il s'ouvrira dans votre navigateur par défaut.
Si vous souhaitez également installer CygWin, vous pouvez ajouter le chemin CygWin à votre chemin GitBash. Si Zip existe, cela fonctionnera. par exemple. ajouter
PATH=$PATH:/c/cygwin/bin
export PATH
à votre .bashrc
; NOTE: Je le mettrais au end du chemin comme indiqué, pas au début.
CygWin étant doté d’un programme d’installation basé sur l’interface utilisateur, il est facile d’ajouter ou de supprimer des applications telles que Zip ou man.
Vous pouvez comprendre les chemins de fenêtres de chacun en disant
`cygpath -w /bin`
dans chaque coquille respective.