Git Bashにコマンドを追加する方法は?


63

私はWindowsマシンで作業しており、Gitに付属のbashシェルを使用しています。しかし、このバージョンのbashシェルには欠けている多くのユーティリティがあります。

このシェルにさらにコマンドをインストールするにはどうすればよいですか?


3
何をしようとしましたか?
030

3
many utilities are missing in this version of bash shell。使用したいコマンドが欠落しているものを追加してください。
030

3
デフォルトで含まれていないユーティリティを使用するはるかに最近の簡単な方法については、serverfault.com / a / 872557/212162を参照してください。
nextgentech

回答:


16

使用する可能性が高いGitには、msysgitディストリビューションまたはCygwinの 2つのバージョンがあります

Cygwin用の追加ユーティリティのインストール

Cygwinインストールの一部としてGitをインストールしただけかもしれませんが(Cygwinを使用した場合)、Cygwinにはsetup.exeというプログラムがあり、これを使用してパッケージを追加できます。基本的に、実行する必要があるのはsetup.exe[パッケージ選択]ウィンドウが表示されたときに実行するプログラムを選択することだけです。ここで紹介するのは、プロセスの詳細を示す画像を含む適切な概要です。

Cygwinのインストーラーは、既存のインストールがあることを把握するのに十分なほど賢く、インストールにパッケージを追加します(それを削除して最初からやり直す代わりに)。

MSYS

おそらく使用している他のバージョンのGit(Cygwinではない場合)はmsysgitです。msysgitはMinGWと実際には互換性のない最小限のUnix環境をインストールするため、msysgitの横にMinGWスイートをインストールする必要があります。MinGWの開始ページには、MinGWのインストール方法に関する詳細な概要が記載されています。MinGWを個人的に経験したことがないため、実際にできることはその指示を参照することだけです。

その後、msysgitインストールをMinGWに移行する必要があります。これは、以下を実行することで実現できます(ここから取得)。次のシーケンスが完了すると、MinGWは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

2
不思議な人には、msysgitパッケージでcygwinインストーラーを使用しないでください。部分的には機能しますが、依存関係の解決中にsh.exe置き換えます(環境が大幅に変更されます)。
クリスベティ

5
git-bashがcygwinまたはmsysを使用しているかどうかを知るにはどうすればよいですか?
LMO

7
git-scm.com/download/winからインストールしたのは、msysgitまたはcygwinですか?編集はそれを考え出した。このコメントを削除するのではなく、msysgitと言います。
限定A

3
@LimitedAtonement-自分自身と同じ質問をした他の読者(私のような)に対して、あなたがそれをどのように理解したかを言ってください。
イオアナ

4
uname -obashターミナルで実行することで、インストールしたものを確認できます。
クリフアームストロング

5

最近のGit for Windowsインストールでは、追加のシェルスクリプトとプログラムのインストールは非常に簡単です。

を実行してgit(およびchocolateyと共にインストールされた他のすべてのツール)を更新できるため、chocolatey を使用してgitをインストールすることをお勧めしchoco install gitますchoco upgrade all

実行可能ファイルをC:\Program Files\Git\usr\bin%ProgramFiles%\Git\usr\bin)に入れるだけです。

git-freshの

ファイルコピーのgit-新鮮にしますC:\Program Files\Git\usr\bin

adr-toolsの

  1. リリースページからzipパッケージをダウンロードする
  2. パッケージを解凍します
  3. コピー元のすべてsrc/C:\Program Files\Git\usr\bin

4

msysgitを使用している場合、単純なオプションは、MinGWをインストールしてから、Gitのインストールに使用している.bashrcファイルにMINGWパスを追加することです。

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

... MINGWはMinGWをインストールした場所です

そうすれば、Git bashインストールからMinGWツールを直接使用できます。別のbashツールが必要な場合は、MinGWにインストールするだけです。


1

Wget, Hugo, Xpdf, make, Nanoここから追加のUnixユニティをダウンロードできます:https : //gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058

Wget

  • Windows用の最新のwgetのバイナリをダウンロードeternallybored(彼らはドキュメント、または単にexeファイルのZIPとして利用可能です)
  • zipをダウンロードした場合は、すべて解凍します(zipユーティリティでビルドされたウィンドウにエラーが表示される場合は、7-zipを使用します)。
  • ファイルの名前を変更wget64.exeするwget.exe必要があれば。
  • に移動wget.exeしますGit\mingw64\bin\

注:Git BashでWgetを使用してWARCファイルを作成すると、いくつかのバグに気付きました。Wgetをより複雑に使用する場合は、代わりにCygwinを検討してください。

ヒューゴ

Hugo静的サイトジェネレーターはバイナリとしてダウンロードでき、インストーラーはありません。bin簡単にドロップすると、Git Bashパスに追加されます。リリースページからWindows 64ビットバージョンを入手します。ダウンロードを解凍hugo.exeし、Git\mingw64\binディレクトリにコピーします。

Xpdf

Xpdfは、PDFファイルを操作するための便利なユーティリティです。

作る

  • ezwinportsに移動します
  • ダウンロードmake-4.1-2-without-guile-w32-bin.zip(guileなしのバージョンを取得)。
  • zipを解凍します。
  • 内容をGit\mingw64\フォルダーのマージにコピーしますが、既存のファイルを上書き/置換しないでください。

ナノ

2018年現在、Git Bashの最新バージョンにはNanoが含まれているため、これは不要です!

  • Nano win32-supportページからNanoバイナリをダウンロードします。.exe名前が付けられたファイルのみが必要ですnano-git-0d9a7347243.exe(この記事の執筆時点)。
  • ファイルの名前をに変更nano.exeし、mingw64\binディレクトリにコピーします。
  • NanoのこのバージョンはGit Bashのみでは機能しませんがwinpty、などを使用して呼び出すことができますwinpty nano test.txt

1

今日はとても簡単な答えが見つかりましたrsync

  1. Windows用のgit bashをインストールする
  2. futureware.atrsyncからダウンロード*
  3. どこにでも抽出します C:\rsync-3.1.2-2-x86_64.pkg
  4. binフォルダーをシステムパスの一番上に追加します

* futureware.atの背後にいるのは誰なのかわかりません。より主要なソースにリンクすることを好みます。


@マイクあなたの答えは、私はcygwin64インストールしなかったことを除いて、似ている
geneorama

1

以下を試して、git-bashにemacsをインストールしました。1. msys2をどこかにインストールします(同じコンピューターである必要はありません)。2. msys2の下で、次を実行します。

   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からアクセスできる場所にコピーしてから、git-bashの下にコピーします。

    tar zxf emacs.tar.gz -C / emacs

それがすべて、幸運です。

最初の投稿の後、他のコンピューターを試しましたが、動作しませんでした。git-bashにはいくつかのdllが欠落していることがわかりました。次に、次の手順でクリーンな仮想マシンでテストしました。

  1. msys2-x86_64-20180531およびGit-2.19.1-64-bitをインストールします。

  2. msys2を更新し、msys64コンソールを開いて実行します:

    pacman -Syyu
    

    プロンプトが表示されたらmsys64コンソールを閉じてから、上記のコマンドを再度実行します。

  3. 前の手順でemacsファイルを取得します(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:/ tmpの代わりに/ d / tmpで上記の手順を試してみましたが、emacsをインストールできませんでした。

  4. git-bashを開き、emacsファイルを抽出します。

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

    共有ライブラリ「?」が見つからないと文句を言うでしょう。今すぐemacsを実行しようとしています。「?」読み取り可能に公開されません

  5. msys64に戻り、msys2のdllを取得します。

    ls --color=never /bin/*.dll > /c/tmp/1.txt
    
  6. git-bashで、dllと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
    

    私の場合、diff_dlls.txtには26個のDLLがあります。

  7. dllをmsys64からgit-bashにコピーします。

    msys64の場合:

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

    git-bashの場合:

    cp /c/tmp/dlls/* /bin
    
  8. すべて完了しました。現在、emacsはgit-bashで実行されます。26個のdllの一部は必要ないかもしれませんが、ディスクスペースの代わりに時間を節約したいと思います。


0

Git bash for Windows(MinGW64)を使用している場合、rsyncを追加するのに苦労しました。エラーが発生し続ける:dup()in / out / err failed

代わりに、Cygwinの使用が最終的に機能しました。

Gitbash for Windowsでrysncを使用するために行った手順

  1. Windows用のgitbashをインストールする
  2. cygwin64をインストールする
  3. cygwinパスをWindowsパス変数に追加します

    Windows->システム->高度な設定->環境変数

    C:\ cygwin64 \ bin \のパスを追加します

  4. gitbashを閉じて再度開くと、gitbashはcygwin \ binでrsync.exeを見つけます。
  5. cygwin1.dllの互換性のないバージョンエラーが発生していました

    ***致命的なエラー-cygheapベースの不一致が検出されました

  6. 再起動でこれが修正されると言う人もいましたが、修正しませんでした。
  7. バージョンエラーを解決するために、cygwinの古いバージョンからcygwin \ binディレクトリをコピーしました-バージョン1.7.30は機能しました

これをしないでください。理由については、git bashスクリプトcygwin実行可能ファイル使用するをご覧ください
MikeJRamsey56

0

スクリプトを作成してgit-bashの機能の数を拡張し、~/.bash_profileファイルで定義して呼び出すことができます。

watchコマンドを使用したい場合は、このスクリプトを以下に追加できます~/.bash_profile

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

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

関数内にラップします。

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

ファイルを保存して実行するとすぐにsource ~/.bash_profile、コマンドの出力を監視できるはずです。



-1

たす rsync

mysysからrsyncファイルを直接ダウンロードできます。ページでrsyncを検索し、最新の日付/最新のバージョン番号のものを選択するだけです。
このファイルを解凍(rsync-3.1.3-1-x86_64.pkg.tar.xz)します

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

次に、rsync at ./usr/bin/rsync.exe をコピーして、Gitインストールの/ usr / binフォルダーに貼り付けます。
私のマシンでは、それはC:/Program Files/Git/usr/bin/

Gitのインストール場所は次の方法で確認できます

where git

以下に、rsync https://gist.github.com/hisplan/ee54e48f17b92c6609ac16f83073dde6の 3.1.3-1バージョンへのリンクとともに指示があるhisplanによる要点リポジトリを示し ます

注:rsync-3.1.3-1-x86_64.pkg.tar.xzアクセス許可では許可されていないため、Gitフォルダーにファイルを直接展開できませんでした。また、Git Bashにはsudoがありません。
ただし、ダウンロードフォルダーに直接解凍しても問題ありません。とにかくファイル
だけが必要なので、それも同様rsync.exeです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.