diff --git a/docs/GitRepositoryRegistration.md b/docs/GitRepositoryRegistration.md
index 83038b7..ac50559 100644
--- a/docs/GitRepositoryRegistration.md
+++ b/docs/GitRepositoryRegistration.md
@@ -38,9 +38,26 @@ If the current directory is not in a git repo, a registration already exists by
`Get-GitRepoRegistration`
+Returns all currently registered git repositories, as well as their current branch.
+
+```pwsh
+PS D:/Repos/Project-a> Get-GitRepoRegistration
+
+Name Location CurrentBranch
+---- -------- -------------
+test-repo D:/Repos/Project-a main
+Project-a D:/Repos/Project-a main
+```
+
+The current branch is cached for 15 minutes for performance reasons so it may not be up to date if a git repo has recently had its branch changed.
+
## Show-GitRepoRegistration
-`Show-GitRepoRegistration -Name string [-NoStack|-NoSetLocation]`
+`Show-GitRepoRegistration -Name string [-NoStack|-NoPushLocation]`
+
+Changes your location to the location of the git repo registered by the given `-Name`. If used without `-NoStack` or its alias `-NoPushLocation`, your original location will be preserved and can be returned to at any time via `Pop-Location`/`Popd`.
+
+Using `-NoStack`/`-NoPushLocation` will not push your current location onto the stack, and will behave the same as `cd`/`Set-Location`.
## Remove-GitRepoRegistration
diff --git a/src/ModuleCore/Git/GitManager.cs b/src/ModuleCore/Git/GitManager.cs
index f301244..1312b03 100644
--- a/src/ModuleCore/Git/GitManager.cs
+++ b/src/ModuleCore/Git/GitManager.cs
@@ -167,6 +167,11 @@ public class GitManager
});
}
+ ///
+ /// Returns all currently registered git repositories, including additional information such as the git repositories
+ /// current branch.
+ ///
+ ///
public List ListRepos()
{
return _registrations.Select(x =>
@@ -301,6 +306,10 @@ public class GitManager
public string Location { get; set; } = null!;
+ ///
+ /// The current branch of the repository. This value is cached for 15 minutes after which it becomes stale and
+ /// will be refreshed on the next call to this property.
+ ///
public string CurrentBranch => GetCurrentBranch();
// TODO: not fully decided on if I want this feature or not, but keeping it in for now
diff --git a/src/PowershellModule/Git/Commands/GetGitRepoRegistrationCommand.cs b/src/PowershellModule/Git/Commands/GetGitRepoRegistrationCommand.cs
index c343c22..d1885ec 100644
--- a/src/PowershellModule/Git/Commands/GetGitRepoRegistrationCommand.cs
+++ b/src/PowershellModule/Git/Commands/GetGitRepoRegistrationCommand.cs
@@ -4,6 +4,9 @@ using ModuleCore.Git.Models;
namespace PowershellModule.Git.Commands;
+///
+/// Lists all currently registered git repositories, with additional information such as their current branch.
+///
[Cmdlet(VerbsCommon.Get, GitCommands.GitRepoRegistrationNoun)]
[OutputType(typeof(GitRegistration))]
public class GetGitRepoRegistrationCommand : PSCmdlet
diff --git a/src/PowershellModule/Git/Commands/ShowGitRepoRegistrationCommand.cs b/src/PowershellModule/Git/Commands/ShowGitRepoRegistrationCommand.cs
index 56a64ba..61b7561 100644
--- a/src/PowershellModule/Git/Commands/ShowGitRepoRegistrationCommand.cs
+++ b/src/PowershellModule/Git/Commands/ShowGitRepoRegistrationCommand.cs
@@ -16,7 +16,7 @@ public class ShowGitRepoRegistrationCommand : PSCmdlet
[Parameter(
Mandatory = false,
HelpMessage = "Changes directory directly instead of using Set-Location")]
- [Alias("NoSetLocation")]
+ [Alias("NoPushLocation")]
public SwitchParameter NoStack { get; set; }
protected override void BeginProcessing()