0

我们有一个 psake 编排,在调用“git clean -xdf”之前提示用户以下消息:

即将删除所有未跟踪的文件。按“Y”继续或任何其他键取消。

我们想显示这个提示当存储库中存在将通过运行 clean -xdf 删除的未跟踪文件时,

关于如何使用 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."
    }
}
4

1 回答 1

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
于 2015-03-18T14:10:08.843 回答