Git Bash'e daha fazla komut nasıl eklenir?


63

Windows makinesinde çalışıyorum ve Git ile birlikte gelen bash shell kullanıyorum. Ancak bash kabuğunun bu versiyonunda eksik olan birçok yardımcı program var.

Bu kabuğa daha fazla komut nasıl kurabilirim?


3
Ne denedin
030

3
many utilities are missing in this version of bash shell. Lütfen kullanmak istediğiniz hangi komutların eksik olduğunu ekleyin.
030

3
Bkz serverfault.com/a/872557/212162 varsayılan olarak yer almayan araçlardan kullanarak çok daha yakın daha ve daha kolay bir yol.
nextgentech

Yanıtlar:


16

Git'in kullanmanız muhtemel iki sürümü vardır - msysgit dağılımı veya Cygwin .

Cygwin İçin Ek Yardımcı Programlar Kurmak

Git'i yalnızca Cygwin kurulumunuzun bir parçası olarak kurmuş olsanız da (Cygwin kullanıyorsanız), Cygwin'in paket eklemek için kullanabileceğiniz setup.exe adlı bir programı vardır . Temel olarak, yapmanız gereken tek şey, Paket Seç penceresine setup.exegeldiğinizde hangi programları kurmak istediğinizi seçip çalıştırmaktır . Tanıtım burada o ayrıntı süreci görüntüleri ile iyi bir bakış sağlar.

Cygwin'in kurucusu önceden var olan bir kurulumunuz olduğunu anlamaya yetecek kadar akıllıdır ve kurulumunuza paketler ekleyecektir (nükleer işlem yapmak ve yeniden başlamak yerine).

MSYS'i

Git kullandığınız diğer sürümü muhtemelen (Cygwin değilse) msysgit'tir. Msysgit, MinGW ile gerçekten uyumlu olmayan bir Unix ortamı kurduğundan, MinGW paketini msysgit'in yanına kurmak zorunda kalacaksınız. MinGW Başlarken sayfası, MinGW'nin nasıl kurulacağına ilişkin ayrıntılı bir genel bakış sunar - kişisel olarak MinGW ile ilgili deneyimim olmadığından, tek yapabileceğim tek şey sizi kendi talimatlarına yönlendirmektir.

Daha sonra msysgit kurulumunuzu MinGW'ye geçirmeniz gerekir. Bu, ( buradan alınacak şekilde ) aşağıdakilerle başarılabilir . Aşağıdaki sıralama yapıldıktan sonra, MinGW Git kurulumunuzu bulmalıdır.

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

2
Merak eden herkes için, msysgit paketindeki cygwin yükleyicisini kullanmaya çalışmayın. Kısmen işe yarıyor ... ama bağımlılıkları çözerken , sh.exe dosyasının yerini alacak (ortamınızı önemli ölçüde değiştirecek).
Chris Betti

5
Git-bash'imin cygwin veya msys kullanıp kullanmadığını nasıl bilebilirim?
lmo

7
Git-scm.com/download/win adresinden yükledim, msysgit mi , cygwin mi? EDIT Anladım. Bu yorumu silmek yerine, bunun msysgit olduğunu söyleyeceğim.
Sınırlı Kefaret

3
@LimitedAtonement - Lütfen kendilerine aynı soruyu soran diğer okuyucular için (kendim gibi) nasıl anladığınızı da söyleyin.
Ioanna

4
uname -oBash terminalinde çalıştırarak ne kurduğunuzu söyleyebilirsiniz .
Cliff Armstrong,

5

En son Windows for Git kurulumlarında, ek kabuk komut dosyaları ve programlar yüklemek oldukça kolaydır.

Git'i chocolatey kullanarak yüklemenizi öneririm choco install git, çünkü git'i (ve chocolatey ile yüklenen tüm araçları) çalıştırarak güncelleyebilirsiniz choco upgrade all.

Çalıştırılabilir dosyaları C:\Program Files\Git\usr\bin( %ProgramFiles%\Git\usr\bin) içine basitçe yerleştirin .

Git-fresh için örnek

Dosyayı Kopyala git-taze için C:\Program Files\Git\usr\bin.

Adr-tools için örnek

  1. Bültenler sayfasından bir zip paketi indirin
  2. Paketi aç
  3. Her şeyi kopyalayın src/içineC:\Program Files\Git\usr\bin

4

Eğer msysgit kullanıyorsanız basit seçenek sadece yüklemektir MinGW ve sonra da Git kurulum için kullandığınız Bashrc dosyasına MinGW yolunu ekleyin:

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

... MINGW, MinGW'yi kurduğunuz yer

Bu şekilde MinGW araçlarını doğrudan Git bash kurulumunuzda kullanabilirsiniz ve başka bir bash aracına ihtiyacınız varsa, sadece MinGW'ye yükleyebilirsiniz.


1

Ek Unix birimlerini buradan indirebilirsiniz Wget, Hugo, Xpdf, make, Nano: https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058

wget

  • Dan pencereler için en son wget ikili indirin eternallybored (bunlar belgelerle bir zip, ya da sadece bir exe mevcuttur)
  • Zip'i indirdiyseniz, tümünü çıkartın (zip yardımcı programında yerleşik pencereler hata veriyorsa, 7-zip kullanın ).
  • Dosyayı yeniden adlandırma wget64.exeiçin wget.exegerekirse.
  • wget.exeKendinize taşıyın Git\mingw64\bin\.

Not: WARC dosyalarını oluşturmak için Git Bash'de Wget kullanırken bazı hatalar fark ettim. Wget daha karmaşık kullanımı için, düşünün Cygwin yerine.

Hugo

Hugo statik site jeneratörü bir ikili olarak indirilebilir ve bir yükleyiciye sahip değildir. binKolayca içine bırakarak Git Bash yoluna ekler. Windows 64 bit sürümünü sürümler sayfasından alın . İndir Sıkıştırılmış, daha sonra kopya hugo.exesenin içine Git\mingw64\bindizine.

Xpdf

Xpdf , PDF dosyalarını işlemek için kullanışlı bir yardımcı programdır.

Yapmak

  • Ezwinports'a git .
  • İndir make-4.1-2-without-guile-w32-bin.zip(guile olmayan sürümü edinin).
  • Zip ayıklayın.
  • İçeriği Git\mingw64\, klasörleri birleştirmek için kopyalayın , ancak varolan dosyaların üzerine YAZMAYIN / değiştirmeyin.

Nano

2018'den itibaren Git Bash'in son sürümleri Nano'yu içeriyor, bu yüzden bu gereksiz!

  • Nano ikili dosyasını Nano win32 destek sayfasından indirin. Sadece .exedosyaya ihtiyacınız var nano-git-0d9a7347243.exe(bu yazı itibariyle).
  • Dosyayı yeniden adlandırın ve dizine nano.exekopyalayın mingw64\bin.
  • Nano'nun bu sürümü yalnızca Git Bash ile çalışmaz, ancak winptyörneğin kullanılarak çağrılabilir winpty nano test.txt.

1

Bugün çalıştığım oldukça basit bir cevap buldum rsync.

  1. Windows için git bash yükleyin
  2. Yükleme rsyncgelen futureware.at *
  3. İstediğin yere çıkar, seçerim C:\rsync-3.1.2-2-x86_64.pkg
  4. Ekle bin sistem yolunun üstüne klasörü

* Futureware'in arkasında kimin olduğunu bilmiyorum. Daha birincil bir kaynağa bağlanmayı tercih ederim.


@mike cevabınız benzer, ancak ben cygwin64 yüklemedi dışında
geneorama 19

1

Aşağıdakileri denedim ve emacs'i git-bash'a yükledim .. 1. msys2'yi bir yere kurun (aynı bilgisayar olması gerekmez). 2. msys2 altında aşağıdakileri çalıştırın:

   cd /tmp
    mkdir -p var/lib
    cp -R /var/lib/pacman var/lib/
    pacman -Sr /tmp emacs
    tar zcf emacs.tar.gz usr
  1. emacs.tar.gzGit-bash'dan, sonra git-bash'dan erişebileceğiniz yere kopyalayın :

    tar zxf emacs.tar.gz -C / emacs

Hepsi bu, iyi şanslar.

İlk yazının ardından başka bir bilgisayarı denedim ama çalışmıyor. Git-bash'ta bazı sıkıntıların eksik olduğu ortaya çıktı. Sonra temiz bir sanal makinede aşağıdaki adımları izleyerek test ettim:

  1. Msys2-x86_64-20180531 ve Git-2.19.1-64-bit'i yükleyin .

  2. Msys2'yi güncelleyin, msys64 konsolunu açın ve çalıştırın:

    pacman -Syyu
    

    İstendiğinde msys64 konsolunu kapatın, ardından yukarıdaki komutu tekrar çalıştırın.

  3. Emacs dosyalarını önceki adımlarla alın (aşağıdakileri msys64 ile çalıştırın):

    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: Bir keresinde yukarıdaki adımları / d / tmp yerine / tmp yerine denedim ve buna emacs yükleyemedim.

  4. Git-bash'ı açın ve emacs dosyalarını açın:

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

    Kayıp paylaşılan kütüphane "?" Şimdi emacs çalıştırmaya çalışıyorum. "?" okunabilir herhangi bir şey ortaya çıkmayacak

  5. Msys64'e geri dönün ve msys2 dlls'lerini edinin:

    ls --color=never /bin/*.dll > /c/tmp/1.txt
    
  6. Git-bash'ta msys ile ödülleri karşılaştırın:

    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
    

    Benim durumumda diff_dlls.txt dosyasında 26 tane var.

  7. Msys64'ten git-bash'a kopyaları kopyala:

    Msys64’de:

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

    Git-bash'ta:

    cp /c/tmp/dlls/* /bin
    
  8. Hepsi bitti, şimdi emacs git-bash'da çalışıyor. 26 ödevden bazıları gerekli olmayabilir, ancak zaman kazanmak için disk alanını kullanmayı tercih ederim.


0

Windows için Git bash kullanıyorsanız (MinGW64), rsync'i eklemek için çok zor bir zaman geçirdim. hata almaya devam etti: dup () giriş / çıkış / hata başarısız oldu

Bunun yerine, Cygwin kullanarak sonunda çalıştı.

Windows için Gitbash'te rysnc kullanmak için attığım adımlar

  1. Windows için gitbash'i yükleyin
  2. Cygwin64'ü kurun
  3. Windows yol değişkenine cygwin yolunu ekleyin

    Windows-> Sistem-> Gelişmiş Ayarlar-> Çevre Değişkenleri

    C: \ cygwin64 \ bin \ için bir yol ekleyin

  4. Gitbash'i kapatıp tekrar açın Şimdi gitbash, rsync.exe dosyasını cygwin \ bin dizininde bulacaktır.
  5. Cygwin1.dll için uyumsuz bir sürüm hatası alıyordum

    *** ölümcül hata - cygheap tabanı uyumsuzluğu tespit edildi

  6. Bazıları yeniden başlatma işleminin bunu düzelteceğini söylemesine rağmen, çözmedi.
  7. Sürüm hatasını çözmek için, cygwin \ bin dizinini eski bir cygwin sürümünden kopyaladım - sürüm 1.7.30 çalıştı


0

Biri, git-bash içindeki özelliklerin sayısını komut dosyaları oluşturarak genişletebilir ve ~/.bash_profiledosyada tanımlayarak onları arayabilir .

Örnek

Biri watchkomutu kullanmak isterse, bu komut dosyası aşağıdakilere eklenebilir ~/.bash_profile:

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

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

ve bir işlevin içine sarın:

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

Birisi dosyayı kaydeder ve çalışır source ~/.bash_profileçalışmaz komutların çıktısını izleyebilmelidir.



-1

eklemek rsync

Rsync dosyasını doğrudan mysys'den indirebilirsiniz . Sadece rsync sayfasını arayın ve en son tarih / en son sürüm numarası olan sayfayı seçin.
Bu dosyayı açın ( rsync-3.1.3-1-x86_64.pkg.tar.xz) ile

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

Ardından rsync ./usr/bin/rsync.exe dosyasını kopyalayın ve Git kurulumunuzun / usr / bin klasörüne yapıştırın.
Benim makinede, buC:/Program Files/Git/usr/bin/

Git kurulumunuzun konumunu

where git

Burada, rsync https://gist.github.com/hisplan/ee54e48f17b92c6609ac16f83073dde6 .

Not: rsync-3.1.3-1-x86_64.pkg.tar.xzİzinleri izin vermediğinden , dosyayı doğrudan Git klasörüne açamadım. Git Bash'te sudo yok.
Ancak doğrudan İndirilenler klasörüme paketinden çıkarabilirim.
Aynı zamanda, çünkü rsync.exeyine de sadece dosyaya ihtiyacınız var .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.