> AI agents: For documentation discovery and navigation, see [llms.txt](/llms.txt).

# Source control FAQ

This article answers support and compatibility questions about source control in Visual Studio Code. To perform a Git task, use the [task guides](#common-tasks). For errors and unexpected behavior, see [source control troubleshooting](/docs/sourcecontrol/troubleshooting.md). If you're setting up Git for the first time, start with the [quickstart](/docs/sourcecontrol/quickstart.md).

## Git clients and providers

### Can VS Code use GitHub Desktop for Git operations?

No. VS Code uses the [official Git distribution](https://git-scm.com/) for its built-in Git integration. Installing GitHub Desktop doesn't replace this requirement.

### Can I use Team Foundation Version Control?

Install the [Azure Repos extension](https://marketplace.visualstudio.com/items?itemName=ms-vsts.team) to add Team Foundation Version Control support to VS Code.

### Can I use another source control provider?

Yes. Git support is built into VS Code, and extensions can contribute support for other source control systems. Search the Extensions view (`kb(workbench.view.extensions)`) for `@category:"scm providers"`.

## Authentication

### Can I use SSH authentication with VS Code?

Yes. VS Code uses the SSH configuration from your Git installation. If an SSH key has a passphrase, configure an SSH agent so Git can request or reuse the passphrase.

For platform-specific configuration, see [GitHub's SSH documentation](https://docs.github.com/authentication/connecting-to-github-with-ssh).

### How do I authenticate with an Azure DevOps organization that requires multifactor authentication?

Use [Git Credential Manager](https://github.com/GitCredentialManager/git-credential-manager), the recommended Git credential helper for Windows, macOS, and Linux. Git for Windows includes Git Credential Manager.

## GitHub

### Is GitHub Enterprise Server supported?

Yes. VS Code supports authentication with GitHub Enterprise Server. Open a local checkout of a GitHub Enterprise Server repository and follow the sign-in prompt.

The [GitHub Pull Requests and Issues extension](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github) also supports GitHub Enterprise Server. Configure the extension for your server before you manage pull requests or issues.

## Common tasks

Use these focused guides for Git tasks and workflow questions:

| Task or question | Guide |
|------------------|-------|
| Choose which changes to commit | [Stage changes](/docs/sourcecontrol/staging-commits.md#staging-changes) |
| Undo the last commit or reverse a shared commit | [Undo a local commit](/docs/sourcecontrol/staging-commits.md#undo-the-last-commit) or [undo a pushed commit](/docs/sourcecontrol/staging-commits.md#undo-a-pushed-commit) |
| Remove uncommitted edits | [Discard changes](/docs/sourcecontrol/staging-commits.md#discard-changes) |
| Understand why a file is both staged and unstaged | [Why a file appears in both lists](/docs/sourcecontrol/staging-commits.md#why-a-file-appears-in-both-lists) |
| Create, rename, or delete a branch | [Work with branches](/docs/sourcecontrol/branches-worktrees.md#working-with-branches) |
| Download or upload commits without doing both | [Choose between fetch, pull, push, and sync](/docs/sourcecontrol/repos-remotes.md#push-pull-and-sync) |
| Finish or stop a merge or rebase | [Complete the operation](/docs/sourcecontrol/merge-conflicts.md#complete-the-merge-operation) or [cancel an operation](/docs/sourcecontrol/merge-conflicts.md#cancel-an-operation) |
| Understand why an ignored file still appears | [Troubleshoot ignored files](/docs/sourcecontrol/troubleshooting.md#ignored-files-still-appear-in-source-control) |
| Inspect commits and branches | [View branch and commit history](/docs/sourcecontrol/history.md#view-branch-and-commit-history) |
