Ich benutze "git bash
" unter Windows - das ist git
für Windows über die integrierte bash
. Anscheinend verwendet es die MINGW/MSYS-Unterlegung. (Update von @VonC: Es verwendet jetzt verwendet msys2 , da msysgit veraltet ist seit dem vierten Quartal 2015.)
Daher sind bereits viele MSYS-Tools installiert - von awk
bis zcat
. Ich vermisse jedoch den Befehl man
und Zip
, um mehrere Dateien in eine Zip-Datei zu komprimieren (unzip
existiert!).
Woher kann ich sie installieren? Ich möchte keine weitere Kopie des MINGW-Systems installieren! Gibt es eine Möglichkeit, der git bash
-Installation einige vorkompilierte Tools hinzuzufügen?
Der Befehl Zip
kann von GoW (Gnu On Windows) installiert werden. man
wird nicht bereitgestellt (zu groß).
Es ist jedoch zu beachten, dass, wenn Sie only den Befehl Zip
von GoW hinzufügen möchten, das gesamte GoW-System noch heruntergeladen und installiert werden muss. Dann können Sie die anderen Befehle aus dem Verzeichnis bin
löschen. Stellen Sie jedoch sicher, dass die erforderlichen DLLs im Verzeichnis verbleiben.
git-archive
, wird ohne Installation vorbereitet, kann ein Zip-Archiv erstellen.
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
Das folgende Skript kann verwendet werden: 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
Ich bin so froh, meine Erfahrungen zu diesem Thema teilen zu können, die ich seit meinem ersten Tag mit Groovy seit zwei Jahren nicht mehr kenne. Für meine Methode muss git
für Windows unter Windows installiert sein.
Die Schritte, die ich behoben habe, konnten verfolgt werden:
/c/Program Files/7-Zip
installiert./c/Program Files/Git/mingw64/bin
. Sie können den Befehl ln -s /c/Program Files/7-Zip/7z.exe Zip.exe
ausführen.sdk
in Windows zu installieren, denke ich. Ignorieren Sie diesen Schritt ansonsten).Ich bin mir ziemlich sicher, dass es Ihnen sehr helfen kann. Vertrau mir!
Sie können eine kleine Teilmenge des Man-Verhaltens in der Shell nachahmen, indem Sie man <command>
zu <command> --help | less
zuordnen.
Leider fügen bash-Aliase auf meinem Rechner keine Flags zu Positionsargumenten hinzu. Sie versuchen, das Flag als Befehl auszuführen und schlagen fehl (alias man="$1 --help"
funktioniert nicht).
Eine Funktion namens man()
ist nicht erlaubt!
Glücklicherweise kann eine Kombination aus Bash-Funktionen und Aliasnamen diese Zuordnung erzielen. Fügen Sie den folgenden Code in Ihre ~/.bashrc ein (erstellen Sie einen Code, falls er nicht vorhanden ist). Vergessen Sie nicht, source ~/.bashrc
.
# man command workaround: alias can't pass flags, but can't name function man
m() {
"$1" --help | less
}
alias man="m"
Sie erhalten nicht die vollständige Manpage, aber wenn Sie nur grundlegende Informationen zu einem Befehl und seinen Flags suchen, ist dies möglicherweise alles, was Sie brauchen.
Hier ist eine weitere, leicht abweichende Anleitung zum Installieren von Zip for git bash unter Windows:
Zip-3.0-bin.Zip
bin
die Datei Zip.exe
.C:\Program Files\Git\mingw64\bin
)bzip2-1.0.5-bin.Zip
bin
die Datei bzip2.dll
bzip2.dll
in deinen "mingw64" bin Ordner (gleicher Ordner - C:\Program Files\Git\mingw64\bin
)Sie können einzelne GNU - Tools unter http://gnuwin32.sourceforge.net/packages.html installieren, z. B. Zip
.
Fügen Sie dann "/c/Program Files (x86)/GnuWin32/bin"
zu PATH
in Ihrem Startskript hinzu, wie .profile
, .bash_profile
, .bashrc
usw.
Das Hinzufügen von 7-Zip zu Gitbash ist einfach.
Ich habe es gerade zum Laufen gebracht! Auf meinem Laptop.
Fazit: Gitbash basiert auf Windows Path. Ich denke, Sie können jeden Befehl ausführen, den Sie Ihrem Windows-Pfad hinzugefügt haben.
Vergessen Sie nicht, Ihr Ergebnis zu überprüfen, wenn Sie dies versuchen.
Hier sind die Schritte, die Sie befolgen können.
Gehen Sie zu folgendem Link https://sourceforge.net/projects/gnuwin32/files/
Finden Sie heraus, welcher Befehl Ihnen fehltHier brauche ich Zip und bzip2 für den Zip-Befehl. Weil der Zip-Befehl von bzip2.dll ausgeführt wird. Andernfalls wird die Fehlermeldung "Fehler beim Laden von gemeinsam genutzten Bibliotheken:?: Gemeinsame Objektdatei kann nicht geöffnet werden: Keine solche Datei oder Verzeichnis" angezeigt.
Entpacke die heruntergeladenen DateienHier lade ich "Zip-3.0-bin.Zip" für "Zip.exe" und "bzip2-1.0.5-bin.Zip" für "bzip2.dll" im Ordner bin herunter. /bin/.exe
Kopieren Sie den Befehl exe-Datei in den Ordner git-bash Hier kopiere ich "Zip.exe" und "bzip2.dll" nach\Git\usr\bin.
Referenzlink https://ranxing.wordpress.com/2016/12/13/add-Zip-into-git-bash-on-windows/
In Bezug auf Zip
können Sie das folgende Perl
-Skript zum Packen von Dateien verwenden:
#!/usr/bin/Perl
use IO::Compress::Zip qw(:all);
$z = shift;
Zip [ @ARGV ] => $z or die "Cannot create Zip file: $ZipError\n";
Wenn Sie es ausführbar machen, nennen Sie es Zip
und geben Sie es in Ihren $PATH
ein. Sie können es folgendermaßen ausführen:
Zip archive.Zipfiles...
es funktioniert jedoch nicht für Verzeichnisse. Es ist keine Installation erforderlich, da Perl
und alle erforderlichen Module bereits in der Installation von Git for Windows vorhanden sind.
In Bezug auf man
gibt es zumindest für git
eine Dokumentation, die wie folgt aufgerufen wird:
git option --help
es wird in Ihrem Standardbrowser geöffnet.
Wenn Sie CygWin auch installieren möchten, können Sie den Pfad zu CygWin zu Ihrem GitBash-Pfad hinzufügen. Wenn Zip vorhanden ist, funktioniert es. z.B. hinzufügen
PATH=$PATH:/c/cygwin/bin
export PATH
zu Ihrem .bashrc
; HINWEIS: Ich würde es am Ende des Pfades wie gezeigt anbringen, nicht am Anfang.
Da CygWin über ein UI-basiertes Installationsprogramm verfügt, ist es einfach, Anwendungen wie Zip oder Man hinzuzufügen oder zu entfernen.
Sie können die Fensterpfade von jedem herausfinden, indem Sie sagen
`cygpath -w /bin`
in jeder jeweiligen Shell.