Change:
<img width="128" alt="CleanShot 2022-06-24 at 07 47 19 src="https://user-"<img width="230" alt="CleanShot 2022-06-24 at 07 47 05 src="https://user-"<img width="209" alt="CleanShot 2022-06-24 at 07 48 13 src="https://user-"
Added icons to all the entries so that the quick pick items are consistent. <img width="714" alt="image" src="https://user-"
I wouldn't add icons for every entry as it can get busy/repetitive. and I were just discussing about reducing the repetition of icons in quick picks and only showing them for the ones that really warrant it. <img width="488" alt="CleanShot 2022-06-24 at 12 23 12 src="https://user-"
FYI was suggesting removing the regular branch icons which it doesn't look like the change does. That would align closer with how tasks use icons (defaults are hidden) and the new debug console quick access for example.
This particular quick pick contains items of different types (ex: local branch, remote branch, tag). The only was to distinguish the type if to look at the description of the icon. I think that having an icon for each item based on its type is actually helpful here. I would like to keep it and see what the user feedback will be.
Just by looking at the icons, I'm only seeing the "locked" branch as the different one from the others. There is no difference between the local and remote branches here so I'm not seeing the benefit of showing the icon every single time and still feels very noisy: <img width="335" alt="CleanShot 2022-07-11 at 08 19 54 src="https://user-"
Reopening to track discussion
Here is what I am seeing if I am running a search for "release". I can clearly differentiate between tags, locked branches, and branches. if I would have a suitable icon for a remote branch, I would be happy to add it. I personally still feel that there is value in showing an icon for item, especially that I think the way people interract with the branch picker is that they open it and start typing in the input to filter down to the item that they would like to open. <img width="728" alt="image" src="https://user-"
We could try to add an overlay on the branch icon, similar to VS: <img width="118" alt="CleanShot 2022-07-13 at 07 59 57 src="https://user-"
Love it! If you add this icon, I am happy to place this in the picker to indicate remote branches.
Closing this issue as I have the icon for remote branches.

Discussion:
class CheckoutItem implements QuickPickItem { protected get shortCommit(): string { return (this.ref.commit || '').substr(0, 8); } <del> get label(): string { return this.ref.name ? `${this.ref.name}${this.repository.isBranchProtected(this.ref.name) ? ' $(lock-small)' : ''}` : this.shortCommit; } </del> <ins> get label(): string { return `${this.repository.isBranchProtected(this.ref.name ?? '') ? '$(lock)' : '$(git-branch)'} ${this.ref.name || this.shortCommit}`; } </ins> get description(): string { return this.shortCommit; } constructor(protected repository: Repository, protected ref: Ref) { }

class CheckoutTagItem extends CheckoutItem { <del> override get label(): string { return this.ref.name || this.shortCommit; } </del> <ins> override get label(): string { return `$(tag) ${this.ref.name || this.shortCommit}`; } </ins> override get description(): string { return localize('tag at', "Tag at {0}", this.shortCommit); }

class CheckoutRemoteHeadItem extends CheckoutItem { <del> override get label(): string { return this.ref.name || this.shortCommit; } </del> <ins> override get label(): string { return `$(git-branch) ${this.ref.name || this.shortCommit}`; } </ins> override get description(): string { return localize('remote branch at', "Remote branch at {0}", this.shortCommit); }