2017-07-17 4 views
0

プログラムリリースを作成するPowershellスクリプトを開発しています。 これを行うには、git作業ツリーがきれいで、コミットされていない変更がないかどうかをチェックしたいと思います。Powershellスクリプト内でgitステータスがクリーンであるかどうかを確認します。

私はthis postと読みましたが、それはbashに関連しています。

gitワーキングツリーがクリーンでコミットするものがあれば、powershellスクリプトの内部からどうやってチェックすることができますか?私はuntrackedファイルについては気にしない。

私はこの問題は、すべてのコミットが、いくつかの人跡未踏のファイルが存在し、それは私が避けたいのですが何かされたときに、私はまたoutputを印刷しておくことである

$gitOutput = (git status -z) | Out-String 
    if ($gitOutput) { 
    "output" 
    } else { 
    "no Output" 
    } 

のようなものを試してみました。私は追跡されていないファイルを無視し、すべての追跡されたファイルがコミットされている場合にのみチェックしたい。

答えて

2

git status --porcelainを使用すると、出力を解析しやすいリストにすることができます。

人跡未踏のファイルは、ステータス??が付いているので、あなたは簡単に任意の出力が残っているかどうかに基づいて、コミットされていない変更があるかどうかを確認し、それらを除外することができ:

if(git status --porcelain |Where {$_ -match '^\?\?'}){ 
    # not clean 
} 
else { 
    # tree is clean 
} 
関連する問題