Added list-branches.ps1

This commit is contained in:
Markus Fleschutz 2021-02-28 18:26:20 +01:00
parent b0772a7f93
commit 032113200c
5 changed files with 43 additions and 19 deletions

View File

@ -39,6 +39,7 @@ inspect-exe.ps1, prints basic information of the given executable file
list-aliases.ps1, lists all PowerShell aliases list-aliases.ps1, lists all PowerShell aliases
list-anagrams.ps1, lists all anagrams of the given word list-anagrams.ps1, lists all anagrams of the given word
list-automatic-variables.ps1, lists the automatic variables of PowerShell list-automatic-variables.ps1, lists the automatic variables of PowerShell
list-branches.ps1, lists the branches of the current/given Git repository
list-current-timezone.ps1, lists the current time zone details list-current-timezone.ps1, lists the current time zone details
list-clipboard.ps1, lists the contents of the clipboard list-clipboard.ps1, lists the contents of the clipboard
list-environment-variables.ps1, lists all environment variables list-environment-variables.ps1, lists all environment variables

1 Script Description
39 list-aliases.ps1 lists all PowerShell aliases
40 list-anagrams.ps1 lists all anagrams of the given word
41 list-automatic-variables.ps1 lists the automatic variables of PowerShell
42 list-branches.ps1 lists the branches of the current/given Git repository
43 list-current-timezone.ps1 lists the current time zone details
44 list-clipboard.ps1 lists the contents of the clipboard
45 list-environment-variables.ps1 lists all environment variables

View File

@ -101,6 +101,7 @@ Scripts for Git 📝
* [clone-repos.ps1](Scripts/clone-repos.ps1) - clones well-known Git repositories * [clone-repos.ps1](Scripts/clone-repos.ps1) - clones well-known Git repositories
* [configure-git.ps1](Scripts/configure-git.ps1) - sets up the Git user configuration * [configure-git.ps1](Scripts/configure-git.ps1) - sets up the Git user configuration
* [fetch-repos.ps1](Scripts/fetch-repos.ps1) - fetches all Git repositories under the current/given directory (including submodules) * [fetch-repos.ps1](Scripts/fetch-repos.ps1) - fetches all Git repositories under the current/given directory (including submodules)
* [list-branches.ps1](Scripts/list-branches.ps1) - lists the branches of the current/given Git repository
* [switch-branch.ps1](Scripts/switch-branch.ps1) - switches the current Git repository to the given branch (including submodules) * [switch-branch.ps1](Scripts/switch-branch.ps1) - switches the current Git repository to the given branch (including submodules)
* [update-repos.ps1](Scripts/update-repos.ps1) - updates all Git repositories under the current/given directory (including submodules) * [update-repos.ps1](Scripts/update-repos.ps1) - updates all Git repositories under the current/given directory (including submodules)

View File

@ -1,11 +1,13 @@
#!/bin/powershell #!/bin/powershell
<# <#
.SYNTAX ./clean-branch.ps1 .SYNTAX ./clean-branch.ps1 [<repo-dir>]
.DESCRIPTION cleans the current Git branch including submodules from generated files (e.g. for a fresh build) .DESCRIPTION cleans the current/given Git branch including submodules from generated files (e.g. for a fresh build)
.LINK https://github.com/fleschutz/PowerShell .LINK https://github.com/fleschutz/PowerShell
.NOTES Author: Markus Fleschutz / License: CC0 .NOTES Author: Markus Fleschutz / License: CC0
#> #>
param($RepoDir = "$PWD")
try { try {
& git --version & git --version
} catch { } catch {
@ -14,6 +16,7 @@ try {
} }
try { try {
set-location $RepoDir
& git clean -fdx # force + recurse into dirs + don't use the standard ignore rules & git clean -fdx # force + recurse into dirs + don't use the standard ignore rules
if ($lastExitCode -ne "0") { throw "'git clean -fdx' failed" } if ($lastExitCode -ne "0") { throw "'git clean -fdx' failed" }

View File

@ -1,35 +1,27 @@
#!/bin/powershell #!/bin/powershell
<# <#
.SYNTAX ./fetch-repos.ps1 [<directory>] .SYNTAX ./fetch-repos.ps1 [<repo-dir>]
.DESCRIPTION fetches all Git repositories under the current/given directory (including submodules) .DESCRIPTION fetches all Git repositories under the current/given directory (including submodules)
.LINK https://github.com/fleschutz/PowerShell .LINK https://github.com/fleschutz/PowerShell
.NOTES Author: Markus Fleschutz / License: CC0 .NOTES Author: Markus Fleschutz / License: CC0
#> #>
param($Directory = "") param($RepoDir = "$PWD")
if ($Directory -eq "") {
$Directory = "$PWD"
}
try { try {
& git --version $null = $(git --version)
} catch { } catch {
write-error "ERROR: can't execute 'git' - make sure Git is installed and available" write-error "ERROR: can't execute 'git' - make sure Git is installed and available"
exit 1 exit 1
} }
try { try {
$Files = get-childItem -path $Directory write-progress "Fetching repository $RepoDir ..."
foreach ($File in $Files) { set-location $RepoDir
if ($File.Mode -like "d*") { & git fetch --recurse-submodules
$Filename = $File.Name if ($lastExitCode -ne "0") { throw "'git fetch --recurse-submodules' failed" }
write-progress "Fetching $Filename ..."
set-location $Filename write-host -foregroundColor green "OK - fetched repository $RepoDir"
& git fetch --recurse-submodules
set-location ..
}
}
exit 0 exit 0
} catch { } catch {
write-error "ERROR: line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" write-error "ERROR: line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"

27
Scripts/list-branches.ps1 Executable file
View File

@ -0,0 +1,27 @@
#!/bin/powershell
<#
.SYNTAX ./list-branches.ps1 [<repo-dir>]
.DESCRIPTION lists the branches of the current/given Git repository
.LINK https://github.com/fleschutz/PowerShell
.NOTES Author: Markus Fleschutz / License: CC0
#>
param($RepoDir = "$PWD")
try {
$null = $(git --version)
} catch {
write-error "ERROR: can't execute 'git' - make sure Git is installed and available"
exit 1
}
try {
set-location $RepoDir
& git branch --list --no-color --no-column
if ($lastExitCode -ne "0") { throw "'git branch' failed" }
exit 0
} catch {
write-error "ERROR: line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
exit 1
}