Bagaimana cara menambahkan perintah ke Git Bash?

63

Saya bekerja pada mesin windows dan saya menggunakan bash shell yang dilengkapi dengan Git. Tetapi ada banyak utilitas yang tidak ada dalam versi bash shell ini.

Bagaimana saya bisa menginstal lebih banyak perintah pada shell ini?

Ankit Zalani
sumber
3
Apa yang kamu coba?
030
3
many utilities are missing in this version of bash shell. Silakan tambahkan perintah apa yang tidak ada yang ingin Anda gunakan.
030
3
Lihat serverfault.com/a/872557/212162 untuk cara yang jauh lebih baru dan lebih mudah menggunakan utilitas yang tidak termasuk secara default.
nextgentech

Jawaban:

16

Ada dua versi Git yang kemungkinan akan Anda gunakan - distribusi msysgit atau Cygwin .

Menginstal Utilitas Tambahan Untuk Cygwin

Meskipun Anda mungkin hanya menginstal Git sebagai bagian dari instalasi Cygwin Anda (jika Anda menggunakan Cygwin), Cygwin memiliki program yang disebut setup.exe yang dapat Anda gunakan untuk menambahkan paket. Pada dasarnya, yang harus Anda lakukan adalah menjalankan setup.exedan memilih program apa yang ingin Anda instal ketika Anda masuk ke jendela Select Packages . Pendahuluan di sini memberikan gambaran umum yang baik dengan gambar yang merinci prosesnya.

Penginstal Cygwin cukup pintar untuk mengetahui bahwa Anda memiliki instalasi yang sudah ada sebelumnya, dan itu akan menambahkan paket ke instalasi Anda (bukan nuking dan mulai lagi dari awal).

MSYS

Versi lain dari Git yang mungkin Anda gunakan (jika bukan Cygwin) adalah msysgit. Karena msysgit menginstal lingkungan Unix minimal yang tidak benar-benar kompatibel dengan MinGW, Anda akhirnya harus menginstal suite MinGW di samping msysgit. Halaman Memulai MinGW memberikan gambaran terperinci tentang bagaimana cara menginstal MinGW - karena saya tidak memiliki pengalaman dengan MinGW secara pribadi, yang bisa saya lakukan hanyalah merujuk Anda ke instruksi mereka.

Anda kemudian harus memigrasi instalasi msysgit Anda ke MinGW. Ini dapat dicapai dengan melakukan hal berikut (diambil dari sini ). Setelah urutan berikut selesai, MinGW akan menemukan instalasi Git Anda.

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
baru123456
sumber
2
Bagi siapa pun yang bertanya-tanya, jangan mencoba menggunakan penginstal cygwin pada paket msysgit. Ini sebagian berfungsi ... tetapi sementara menyelesaikan dependensi, itu akan menggantikan sh.exe (yang mengubah lingkungan Anda secara signifikan).
Chris Betti
5
Bagaimana saya tahu jika git-bash saya menggunakan cygwin atau msys?
lmo
7
Saya menginstal dari git-scm.com/download/win apakah itu msysgit atau cygwin? EDIT Menemukannya. Daripada menghapus komentar ini, saya akan mengatakan bahwa ini msysgit.
Penebusan Terbatas
3
@LimitedAtonement - Tolong juga katakan bagaimana Anda mengetahuinya, untuk pembaca lain (seperti saya) yang telah mengajukan pertanyaan yang sama kepada diri mereka sendiri.
Ioanna
4
Anda dapat mengetahui apa yang telah Anda instal dengan menjalankan uname -odi terminal bash.
Cliff Armstrong
5

Dengan instalasi Git untuk Windows baru-baru ini , menginstal skrip dan program shell tambahan cukup mudah.

Saya sarankan menginstal git menggunakan chocolatey choco install git , karena Anda dapat memperbarui git (dan semua alat lain yang diinstal dengan chocolatey) dengan mengeksekusi choco upgrade all.

Sederhananya executable ke C:\Program Files\Git\usr\bin( %ProgramFiles%\Git\usr\bin).

Contoh untuk git-fresh

Salin file git-fresh ke C:\Program Files\Git\usr\bin.

Contoh untuk adr-tools

  1. Unduh paket zip dari halaman rilis
  2. Buka zip paket
  3. Salin semuanya dari src/dalamC:\Program Files\Git\usr\bin
koppor
sumber
4

Jika Anda menggunakan msysgit, opsi sederhana adalah hanya menginstal MinGW dan kemudian menambahkan path MINGW ke file .bashrc yang Anda gunakan untuk instalasi Git Anda:

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

... di mana MINGW adalah tempat Anda menginstal MinGW

Dengan begitu Anda dapat menggunakan alat MinGW langsung dari instalasi bash Git Anda, dan jika Anda memerlukan alat bash lain, Anda dapat menginstalnya ke MinGW.

Arnaldo C
sumber
1

Anda dapat mengunduh unit Unix tambahan Wget, Hugo, Xpdf, make, Nanodari sini: https://gist.github.com/evanwill/0207876c3243bbb6868e65ec5dc3f058

Wget

  • Unduh biner wget terbaru untuk windows dari selamanya (tersedia sebagai zip dengan dokumentasi, atau hanya sebuah exe)
  • Jika Anda mengunduh zip, ekstrak semua (jika windows built in zip utility memberikan kesalahan, gunakan 7-zip ).
  • Ubah nama file wget64.exeuntuk wget.exejika perlu.
  • Pindah wget.exeke Git\mingw64\bin\.

Catatan: Saya perhatikan beberapa bug saat menggunakan Wget di Git Bash untuk membuat file WARC. Untuk penggunaan Wget yang lebih kompleks, pertimbangkan Cygwin .

Hugo

Hugo static site generator dapat diunduh sebagai biner dan tidak memiliki pemasang. Menjatuhkannya ke dalam Anda bindengan mudah menambahkannya ke jalur Git Bash Anda. Raih versi Windows 64-bit dari halaman rilis . Buka zip unduhan, lalu salin hugo.exeke Git\mingw64\bindirektori Anda .

Xpdf

Xpdf adalah utilitas praktis untuk memanipulasi file PDF.

  • Unduh versi windows "alat Xpdf" .
  • Ekstrak zip.
  • Salin konten xpdf-tools-win-4.00\bin64\ke dalam Git\mingw64\bin\.
  • Periksa dokumen untuk memulai dengan alat seperti pdftotextdan pdftopng.

membuat

  • Pergi ke ezwinports .
  • Unduh make-4.1-2-without-guile-w32-bin.zip(dapatkan versi tanpa tipu daya).
  • Ekstrak zip.
  • Salin konten ke Git\mingw64\penggabungan folder Anda, tetapi JANGAN menimpa / mengganti file yang ada.

Nano

Mulai 2018, Git Bash versi terbaru menyertakan Nano, jadi ini tidak perlu!

  • Unduh biner Nano dari halaman dukungan Nano win32 . Anda hanya perlu .exefile, yang dinamai nano-git-0d9a7347243.exe(pada tulisan ini).
  • Ubah nama file menjadi nano.exe, dan salin ke mingw64\bindirektori.
  • Versi Nano ini tidak akan bekerja dengan Git Bash saja, tetapi dapat dipanggil menggunakan winpty, misalnya winpty nano test.txt,.
GKislin
sumber
1

Saya menemukan jawaban yang cukup sederhana untuk hari ini rsync.

  1. Instal git bash untuk Windows
  2. Unduh rsyncdari futureware.at *
  3. Ekstrak ke mana saja, saya pilih C:\rsync-3.1.2-2-x86_64.pkg
  4. Tambahkan folder bin ke bagian atas jalur sistem Anda

* Saya tidak tahu siapa yang ada di belakang futureware.at, saya lebih suka untuk menautkan ke sumber yang lebih utama.

geneorama
sumber
@ Mike jawaban Anda mirip, kecuali bahwa saya tidak menginstal cygwin64
geneorama
1

Saya mencoba yang berikut ini dan menginstal emacs ke git-bash .. 1. Instal msys2 di suatu tempat (tidak harus komputer yang sama). 2. Di bawah msys2, jalankan yang berikut:

   cd /tmp
    mkdir -p var/lib
    cp -R /var/lib/pacman var/lib/
    pacman -Sr /tmp emacs
    tar zcf emacs.tar.gz usr
  1. Salin emacs.tar.gzke tempat Anda dapat mengakses dari git-bash, lalu di bawah git-bash:

    tar zxf emacs.tar.gz -C / emacs

Itu saja, semoga sukses.

Setelah posting pertama, saya mencoba komputer lain tetapi tidak berfungsi. Ternyata beberapa dll hilang di git-bash. Lalu saya menguji di mesin virtual bersih dengan langkah-langkah berikut:

  1. Instal msys2-x86_64-20180531 dan Git-2.19.1-64-bit .

  2. Perbarui msys2, buka konsol msys64 dan jalankan:

    pacman -Syyu
    

    Tutup konsol msys64 saat diminta, lalu jalankan perintah di atas lagi.

  3. Dapatkan file emacs sebagai langkah sebelumnya (jalankan yang berikut di 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: Saya pernah mencoba langkah-langkah di atas dalam / d / tmp dan bukannya / tmp dan tidak dapat menginstal emacs untuk itu.

  4. Buka git-bash dan ekstrak file emacs:

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

    Itu akan mengeluh hilangnya shared library "?" mencoba menjalankan emacs sekarang. "?" tidak akan dibuka untuk dibaca

  5. Kembali ke msys64 dan dapatkan msys2 dlls:

    ls --color=never /bin/*.dll > /c/tmp/1.txt
    
  6. Dalam git-bash, bandingkan dll dengan 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
    

    Dalam kasus saya, ada 26 dll di diff_dlls.txt.

  7. Salin dlls dari msys64 ke git-bash:

    Dalam msys64:

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

    Dalam git-bash:

    cp /c/tmp/dlls/* /bin
    
  8. Semua selesai, sekarang emacs berjalan di git-bash. Beberapa dari 26 dll mungkin tidak diperlukan, tetapi saya lebih memilih untuk menghemat waktu saya daripada ruang disk.

Chenxin
sumber
0

Jika menggunakan Git bash untuk Windows (MinGW64), saya kesulitan mendapatkan rsync untuk ditambahkan. terus mendapatkan kesalahan: dup () in / out / err gagal

Sebaliknya, menggunakan Cygwin akhirnya berhasil.

Langkah-langkah yang saya ambil untuk menggunakan rysnc di Gitbash untuk Windows

  1. Instal gitbash untuk windows
  2. Instal cygwin64
  3. Tambahkan jalur cygwin ke variabel jalur Windows

    Windows-> System-> Setings canggih-> Variabel Lingkungan

    Tambahkan jalur untuk C: \ cygwin64 \ bin \

  4. Tutup dan buka kembali gitbash Sekarang gitbash akan menemukan rsync.exe di cygwin \ bin
  5. Saya mendapatkan kesalahan versi yang tidak kompatibel untuk cygwin1.dll

    *** Kesalahan fatal - ketidakcocokan basis cygheap terdeteksi

  6. Meskipun beberapa orang mengatakan reboot akan memperbaiki ini, ternyata tidak.
  7. Untuk mengatasi kesalahan versi, saya menyalin direktori cygwin \ bin dari versi yang lebih lama dari cygwin - versi 1.7.30 berfungsi
Mike
sumber
Jangan lakukan ini. Lihat Menggunakan cygwin yang dapat dieksekusi di skrip git bash untuk alasannya.
MikeJRamsey56
0

Seseorang dapat menambah jumlah fitur di git-bash dengan membuat skrip dan memanggilnya dengan mendefinisikannya dalam ~/.bash_profilefile.

Contoh

Jika seseorang ingin menggunakan watchperintah, maka skrip ini dapat ditambahkan ke ~/.bash_profile:

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

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

dan bungkus di dalam fungsi:

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

Segera setelah seseorang menyimpan file dan menjalankannya source ~/.bash_profilemaka seseorang harus dapat melihat output dari perintah.

030
sumber
-1

menambahkan rsync

Anda dapat mengunduh file rsync langsung dari mysys . Cukup cari halaman untuk rsync dan pilih yang dengan tanggal / nomor versi terbaru.
Buka paket file ini ( rsync-3.1.3-1-x86_64.pkg.tar.xz) via

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

Kemudian salin rsync di ./usr/bin/rsync.exe dan tempel ke folder / usr / bin pada instalasi Git Anda.
Di mesin saya, ituC:/Program Files/Git/usr/bin/

Anda dapat melihat lokasi instalasi Git Anda melalui

where git

Berikut adalah repo inti oleh hisplan yang memiliki instruksi bersama dengan tautan ke versi 3.1.3-1 di rsync https://gist.github.com/hisplan/ee54e48f17b92c6609ac16f83073dde6 .

Catatan: Saya tidak bisa membongkar rsync-3.1.3-1-x86_64.pkg.tar.xzfile langsung ke folder Git, karena izin tidak mengizinkannya. Dan Git Bash tidak memiliki sudo.
Tapi saya bisa membongkarnya langsung ke folder Unduhan saya tidak ada masalah.
Itu juga, karena Anda hanya perlu rsync.exefile itu.

SherylHohman
sumber