Create release package from git tag with Powershell
You should put [CmdletBinding()] before the param block. This gives you some nice features.

I changed $checkForNewTagsOnly to be of type switch rather than string. You can call the script like this MyScript -checkForNewTagsOnly or MyScript -checkForNewTagsOnly:$false. I think that is better because otherwise how are people supposed to know to supply a "Y" as a parameter?

I made the tag parameter mandatory (Mandatory=$true) so that you won't need to check for it later.

By the way, I think you should start these parameters start with a capital letter. That is the convention.

[CmdletBinding()]
param(
    [Parameter(Mandatory=$true, HelpMessage="Enter the tag.")]
    [string] $tag,
    [string] $gitURI = "https://github.com/jquery/jquery.git",
    [switch] $checkForNewTagsOnly = $true #if yes then it will exit if the folder already exists
)




We use $checkForNewTagsOnly like this now that it is a boolean:

if ($checkForNewTagsOnly) {
    # ...
}




We can get rid of this line altogether now that tag is mandatory:

if([string]::IsNullOrWhiteSpace($tag)){($tag = Read-Host "Enter the tag")}




It's generally better to use Write-Output rather than Write-Host because you can't pipe Write-Host output. You couldn't for instance write it to a log. 

Write-Host "$tag checked out, running clean up on $Currentlocation"




Please be consistent with your formatting. Why do you have FOREACH in caps? I find the inconsistency of your formatting in general to be extremely triggering to my OCD. It's best to stick to conventional formatting. That makes it easier for people to read.

FOREACH ($Item IN $ToDelete) {
    FOREACH ($File IN (Get-ChildItem -recurse | Where-Object {$_.name -like "$Item"})) {




-Filter is faster than -Include. I don't know if that's an issue here or not, but it's something to be aware of. You used -Filter earlier, by the way.

Get-ChildItem -Include .git -recurse -force | remove-item -force -recurse