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
Creates a new Git branch
.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
Specifies the new branch name
.PARAMETER repoPath
Specifies the path to the Git repository (current working directory per default)
.EXAMPLE
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
https://github.com/fleschutz/PowerShell
.NOTES
@ -26,7 +33,7 @@ try {
& git --version
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" }
$repoPathName = (Get-Item "$repoPath").Name
@ -37,7 +44,7 @@ try {
$currentBranch = (git -C "$repoPath" rev-parse --abbrev-ref HEAD)
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"
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" }
[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
} catch {
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"