Source Control
Branches & Collaboration
Create, switch, and merge branches — and resolve the conflicts that come with working alongside other people — without leaving the editor.
Branching
Click the branch name in the Status Bar (bottom-left) to open the branch
picker: switch to an existing branch, create a new one from your current
HEAD, or check out a remote branch you don't have locally yet.
Syncing with a remote
Pull & Push
The sync icon in the Status Bar shows how many commits you're ahead or behind the remote, and pulls then pushes in one click.
Publish Branch
A local branch with no upstream yet shows a Publish Branch action that creates the matching remote branch and starts tracking it.
Fetch
Fetch From All Remotes updates your local view of remote branches without merging anything into your working branch.
History graph
The Graph panel shows incoming and outgoing commits relative to your remote, so you always know what a pull or push is about to do before you do it.
Resolving merge conflicts
When a merge, rebase, or pull produces a conflict, the affected files appear in a Merge Changes group in Source Control. Opening one shows a 3-way merge editor:
See both sides
The incoming and current versions are shown side by side, with the conflicting region highlighted in both.
Pick a resolution
Accept the current change, the incoming change, both, or edit the result
manually in the combined view at the bottom — all with inline buttons, no
manual <<<<<<< marker editing required.
Mark as resolved
Once every conflict in a file is handled, stage it like a normal change and continue the merge or rebase.
Check the whole file before committing a merge
The 3-way editor resolves conflict markers accurately, but it's still worth reading the merged result in context afterward — an automatic resolution can be syntactically valid while still being logically wrong if both sides changed nearby, related code.
Working with GitHub
Signing in with a GitHub account (from the Accounts icon in the Activity Bar) unlocks push/pull authentication without a personal access token, and lets extensions that integrate with GitHub — pull request review tooling, issue linking — authenticate the same way.