Update new-branch.ps1

This commit is contained in:
Markus Fleschutz 2023-09-13 09:46:47 +02:00
parent f79c6d843a
commit 7ad7923ef3

View File

@ -2,13 +2,20 @@
.SYNOPSIS .SYNOPSIS
Creates a new Git branch Creates a new Git branch
.DESCRIPTION .DESCRIPTION
This PowerShell script creates a new branch in a Git repository and switches to it. This PowerShell script creates a new branch in a local Git repository and switches to it.
.PARAMETER newBranch .PARAMETER newBranch
Specifies the new branch name Specifies the new branch name
.PARAMETER repoPath .PARAMETER repoPath
Specifies the path to the Git repository (current working directory per default) Specifies the path to the Git repository (current working directory per default)
.EXAMPLE .EXAMPLE
PS> ./new-branch.ps1 test123 C:\MyRepo PS> ./new-branch.ps1 test123 C:\MyRepo
(1/6) Searching for Git executable... git version 2.42.0.windows.2
(2/6) Checking local repository...
(3/6) Fetching latest updates...
(4/6) Creating new branch...
(5/6) Pushing updates...
(6/6) Updating submodules...
Created branch 'test123' in repo 📂MyRepo (based on 'main' in 18 sec)
.LINK .LINK
https://github.com/fleschutz/PowerShell https://github.com/fleschutz/PowerShell
.NOTES .NOTES
@ -26,7 +33,7 @@ try {
& git --version & git --version
if ($lastExitCode -ne "0") { throw "Can't execute 'git' - make sure Git is installed and available" } if ($lastExitCode -ne "0") { throw "Can't execute 'git' - make sure Git is installed and available" }
Write-Host "⏳ (2/6) Checking local repository... 📂$repoPath" Write-Host "⏳ (2/6) Checking local repository..."
if (-not(Test-Path "$repoPath" -pathType container)) { throw "Can't access directory: $repoPath" } if (-not(Test-Path "$repoPath" -pathType container)) { throw "Can't access directory: $repoPath" }
$repoPathName = (Get-Item "$repoPath").Name $repoPathName = (Get-Item "$repoPath").Name
@ -37,7 +44,7 @@ try {
$currentBranch = (git -C "$repoPath" rev-parse --abbrev-ref HEAD) $currentBranch = (git -C "$repoPath" rev-parse --abbrev-ref HEAD)
if ($lastExitCode -ne "0") { throw "'git rev-parse' failed with exit code $lastExitCode" } if ($lastExitCode -ne "0") { throw "'git rev-parse' failed with exit code $lastExitCode" }
"⏳ (4/6) Creating branch..." "⏳ (4/6) Creating new branch..."
& git -C "$repoPath" checkout -b "$newBranch" & git -C "$repoPath" checkout -b "$newBranch"
if ($lastExitCode -ne "0") { throw "'git checkout -b $newBranch' failed with exit code $lastExitCode" } if ($lastExitCode -ne "0") { throw "'git checkout -b $newBranch' failed with exit code $lastExitCode" }
@ -50,7 +57,7 @@ try {
if ($lastExitCode -ne "0") { throw "'git submodule update' failed with exit code $lastExitCode" } if ($lastExitCode -ne "0") { throw "'git submodule update' failed with exit code $lastExitCode" }
[int]$elapsed = $stopWatch.Elapsed.TotalSeconds [int]$elapsed = $stopWatch.Elapsed.TotalSeconds
"✔️ Created new branch '$newBranch' in repo 📂$repoPathName (based on '$currentBranch', it took $elapsed sec)" "✔️ Created branch '$newBranch' in repo 📂$repoPathName (based on '$currentBranch' in $elapsed sec)"
exit 0 # success exit 0 # success
} catch { } catch {
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" "⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"