diff --git a/extensions/git/src/git.ts b/extensions/git/src/git.ts index ce2ac8b1f96958fd4aa3e45f11560e484360b4ab..b306cab125568cbe645eb6085f1401057c119f31 100644 --- a/extensions/git/src/git.ts +++ b/extensions/git/src/git.ts @@ -1680,13 +1680,16 @@ export class Repository { async getBranch(name: string): Promise { if (name === 'HEAD') { return this.getHEAD(); - } else if (/^@/.test(name)) { - const symbolicFullNameResult = await this.run(['rev-parse', '--symbolic-full-name', name]); - const symbolicFullName = symbolicFullNameResult.stdout.trim(); - name = symbolicFullName || name; } - const result = await this.run(['rev-parse', name]); + let result = await this.run(['rev-parse', name]); + + if (!result.stdout && /^@/.test(name)) { + const symbolicFullNameResult = await this.run(['rev-parse', '--symbolic-full-name', name]); + name = symbolicFullNameResult.stdout.trim(); + + result = await this.run(['rev-parse', name]); + } if (!result.stdout) { return Promise.reject(new Error('No such branch'));