DOSコマンドラインからGit Bashを起動する方法


106

簡単な質問だと思っているのですが、まだ答えを見つけることができません。DOSバッチファイルからGit Bashを起動したいと思います。これが私がこれまでに試したことです:

  1. Win 7のスタートボタンからGit Bashをリリース
  2. CTRL + ALT + DELを使用してプロセスを「sh.exe」として識別
  3. 起動コマンドを使用してバッチファイルからsh.exeを起動

    start sh.exe
    

ただし、これは完全なGit Bash環境を起動しません。Git Bashのタイトルバーには通常「MINGW32」がありますが、sh.exeへのフルパスは...ですGit\bin\sh.exe。おそらく気付かないオーバーレイや依存関係があり、それらもロードする必要がある(プルイン?インポート?)ように思えます。

これは、ウェブを検索して見つけた上位の結果の1つでしたが、私には完全には意味がなく、それが自分の状況に正確に当てはまるかどうかはわかりません。

Windows Cmd行からgitを実行する:キーファイルはどこにありますか?

私はDOSバッチスクリプトの世界の初心者です。


1
次の場合を除いて、実際にはDOSコマンドラインではありません。(a)なんらかの異常が発生し、Windows 9x / MEを使用command.comしている場合。OSに含まれる唯一のシェルである(b)32を使用しているNTシステムをビット化してcommand.com自分で呼び出したか、古いプログラムがそれを実行しました。参照ウィンドウ内のプロンプトCMDとコマンドの違いは何ですか?詳細については。
SamB

回答:


125

バッチファイルから起動する場合:

  • x86の場合

    start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login
    
  • x64の場合

    start "" "%PROGRAMFILES%\Git\bin\sh.exe" --login
    

@Endoroに感謝!@Klas Mellbournの答えはPowershellに正しかったが、DOSバッチファイルから実行しているので、あなたの答えはより正しい。「start」ディレクティブを追加すると、プログラムが非同期で実行されます。これがまさに私が必要とするものです!いいぞ!
エリックHepperle-CodeSlayer2010

14
バッチファイル内から開いた後、Gitバッチウィンドウにコマンドを入力して実行する方法はありますか?
Nick

1
@OviCあなたの編集は正しいですか?「Program Files(x86)」は、32ビットプログラムのx64アーキテクチャーにのみ存在します。
Drunix、2016年

@Drunix正解です。x86システムには「Program Files(x86)\」パスがありません。ロールバックを行いました。ありがとう。
Endoro 2016

システムドライブにインストールされていない場合はどうなりますか?プログラムファイルにインストールされていない場合はどうなりますか?
Michael Kruglos 2017年

44

「完全なGit Bash環境」が何を意味しているのか正確にはわかりませんが、そうすれば素晴らしいプロンプトが表示されます

"C:\Program Files\Git\bin\sh.exe" --login

PowerShellで

& 'C:\Program Files\Git\bin\sh.exe' --login

--loginスイッチは、シェルがログインシェル実行させるスタートアップファイルを


@Klas Mellbournに感謝します。あなたの答えはPowershellに適していますが、Endoroの答えのように「start」ディレクティブを追加しないと、シェルが終了するまで次のプログラムの実行が停止します。これは望ましい動作ではありません。そうでなければ、私はあなたに投票しました。
Eric Hepperle-CodeSlayer2010

私はwindowにConsole2を使用していますcmdが、これは奇妙な動作を引き起こします。:私は、.batファイルでこれを入れて、今、すべてが順調です@"%SYSTEMDRIVE%\Program Files\Git\bin\bash.exe" --login
Grault

25

sh.exeの代わりにgit-bash.exeを使用することを好みます。

start "" "%ProgramFiles%\Git\git-bash.exe" -c "tail -f /c/Windows/win.ini"

/usr/bin/bash --login -i最後に呼び出し時にウィンドウを閉じるのをやめることができます。

start "" "%ProgramFiles%\Git\git-bash.exe" -c "echo 1 && echo 2 && /usr/bin/bash --login -i"

注:これが良い方法かどうかはわかりません:)


4
いい答えですが、git-bashウィンドウはすぐに閉じます。コマンドの実行完了後に自動クローズを無効にする方法を知っていますか?
マーク

@MarkありがとうMark。上記の回答に例を追加しました。残念ながら、私はWindowsの人間ではないので、どうすれば正しい方法でそれを行うべきかわかりません:)
kujiy

1
[コード] start "" "%ProgramFiles%\ Git \ git-bash.exe" [/ code]はうまくいきます!
PauAI 2016

@PauAI 2018になりました... start "" "%ProgramFiles%\Git\git-bash.exe"管理者のコマンドラインから試したところ、新しいウィンドウにGit Bashが表示されましたが、次のような単純なコマンドを入力するlsと、出力が表示されません。この方法では、Linuxコマンドを実行できないようです。...編集:動作しました。lsの実行に長い時間(2分)かかりました。その後、lsは1秒未満で再び実行されました。...変。
Eric Hepperle-CodeSlayer2010 '20

8

私はgitを環境変数に入れて呼び出すだけの方が好きです

c:\Users\[myname]>sh
or 
c:\Users\[myname]>bash

環境変数を作成する手順(Win7)

  • デスクトップで、[コンピューター]アイコンを右クリックします。
  • コンテキストメニューから[プロパティ]を選択します。
  • [システムの詳細設定]リンクをクリックします。
  • 「環境変数」をクリックします。
  • セクションユーザー変数、ボタンNEWを押して、変数名をGIT_HOME、値を(folder-where-you-installed-git)にします。

    • 私にとってはそうでしたc:\tools\git、他の人はおそらく持っていますC:\Program Files\Git
  • PATH環境変数を見つけて選択します。編集をクリックします。(PATH環境変数が存在しない場合は、「新規」をクリックします)。

  • 編集ウィンドウで、新しい値%GIT_HOME%とを追加します %GIT_HOME%\bin。OKをクリックします。[OK]をクリックして、残りのすべてのウィンドウを閉じます。
  • [gitに使用するCMDを必ず閉じてください]
  • 新しいコマンドプロンプトを開き、単にshor bashまたはgit-bash

2
ありがとう!私はこれをGIT_HOMEとしてとして機能させC:\Program Files\Gitgit-bashCMDから入力することができました。また、奇妙なことに、PATHを入力するだけでその内容を表示できますが、このgitカスタム変数の内容を表示するには、入力する必要がありますecho %GIT_HOME%
Eric Hepperle-CodeSlayer2010

ありがとう、これは素晴らしい追加でした。これに追加するには、GIT_HOME変数があり、git-bashコマンド(またはgit-cmd)を使用すると、新しいウィンドウで変数が開きます。「PATH」環境変数に追加すると、既存のウィンドウに切り替わります。入力exitしてgit bashから「ログアウト」しても、DOSプロンプトは保持されます。
Keith E. Truesdell


3

https://stackoverflow.com/a/33368029/15789

こちらに回答を掲載しました。

Windowsコマンドウィンドウを開き、このスクリプトを実行します。作業ディレクトリに変更がある場合、作業ディレクトリにbashターミナルが開き、現在のgitステータスが表示されます。exec bashを呼び出すことにより、bashウィンドウを開いたままにします。

複数のプロジェクトがある場合は、このスクリプトのコピーを異なるプロジェクトフォルダーで作成し、メインバッチスクリプトから呼び出すことができます。


3

上記の情報を使用して、より永続的なソリューションを作成しました。以下は、Git Bashを開くために使用できるエイリアスshを作成します。

echo @start "" "%PROGRAMFILES%\Git\bin\sh.exe" --login > %systemroot%\sh.bat

ありがとうdpate!エコーステートメントをコマンドラインに貼り付けて実行shしたところ、git-bashウィンドウが起動し、コマンドを完全に実行できました。これがどのように機能するかを説明するあなたの答えに少し詳細を追加できますか?誰かに私に魚を与えてもらうよりも、釣りの仕組みを学びたいと思っています。良い答えを探している人にとっても有益だと思います。感謝
エリック・ヘッパール-CodeSlayer2010 '20

0

Endoroの回答は古く、コメントはできません。

# if you want to launch from a batch file or the command line:

start "" "%ProgramFiles%\Git\bin\sh.exe" --login

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