我正在开发用于创建程序发布的 Powershell 脚本。 为此,我想检查 git 工作树是否干净,是否没有未提交的更改。
我读过 this post但它与 bash 有关。
如果 git 工作树是干净的并且有任何东西要提交,我如何从 powershell 脚本内部检查?我不关心未跟踪的文件。
我试过类似的东西
$gitOutput = (git status -z) | Out-String
if ($gitOutput) {
"output"
} else {
"no Output"
}
问题是当所有内容都已提交但有一些未跟踪的文件时,我也会打印 output
,这是我想避免的事情。我想忽略未跟踪的文件并仅检查所有跟踪的文件是否已提交。
最佳答案
使用 git status --porcelain
将输出作为易于解析的列表获取。
未跟踪的文件以状态 ??
为前缀,因此您可以轻松过滤掉这些文件,然后根据是否有任何输出剩余来检查是否有未提交的更改:
if(git status --porcelain |Where {$_ -match '^\?\?'}){
# untracked files exist
}
elseif(git status --porcelain |Where {$_ -notmatch '^\?\?'}) {
# uncommitted changes
}
else {
# tree is clean
}
关于git - 检查 Powershell 脚本中的 git status 是否干净,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45145875/