diff --git a/extensions/git/src/git.ts b/extensions/git/src/git.ts index 941e308719c..2ed2c487376 100644 --- a/extensions/git/src/git.ts +++ b/extensions/git/src/git.ts @@ -1458,13 +1458,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'));