我们有一个psake业务流程,在调用'git clean -xdf'之前会提示用户输入以下消息:
即将删除所有未跟踪的文件。按'Y'继续或任何 其他取消的关键。
如果存储库中存在未通过运行clean -xdf删除的未跟踪文件,我们希望显示此提示 ONLY 。
有关如何使用posh-git回答问题的任何建议“存储库中是否有任何未经跟踪的更改?”来自PowerShell?
这是现有的业务流程,供参考......
task CleanAll -description "Runs a git clean -xdf" {
Write-Host "About to delete any uncommitted changes. Press 'Y' to continue or any other key to cancel." -foregroundcolor "yellow"
$continue = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp").Character
IF ($continue -eq "Y" -or $continue -eq "y")
{
git clean -xdf
}
ELSE
{
Write-Error "CleanAll canceled."
}
}
答案 0 :(得分:0)
在@EtanReisner的帮助下,我能够得到以下解决方案。它检查未跟踪的更改并提示是否有。否则它只是git clean -xdf。
$gitStatus = (@(git status --porcelain) | Out-String)
IF ($gitStatus.Contains("??"))
{
Write-Host "About to delete any untracked files. Press 'Y' to continue or any other key to cancel." -foregroundcolor "yellow"
$continue = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp").Character
IF ($continue -eq "Y" -or $continue -eq "y")
{
git clean -xdf
}
ELSE
{
Write-Error "CleanAll canceled."
}
}
git clean -xdf