2017-07-17 39 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 
} 
相关问题