2017-07-17 40 views
0

我正在開發用於創建程序版本的Powershell腳本。 爲了做到這一點,我想檢查git工作樹是否乾淨,沒有未提交的更改。檢查git狀態在Powershell腳本中是否乾淨

我讀過this post,但它與bash有關。

如何從powershell腳本中檢查git工作樹是否乾淨並且有提交的內容?我不關心未跟蹤的文件。

我已經試過類似

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

的問題是,我打印output也當一切承諾,但也有一些未跟蹤文件,在這個時候,我想避免的。我想忽略未跟蹤的文件並只檢查是否所有跟蹤的文件都已提交。

回答

2

使用git status --porcelain將輸出作爲易於解析的列表獲得。

未跟蹤文件的前綴爲狀態??,這樣你就可以輕鬆地過濾那些出來,然後檢查是否有基於是否有任何輸出左提交的修改:

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