---
sourceDocument: Zurich Build or modify applications
sourceDocumentLink: https://www.servicenow.com/docs/r/zurich/application-development

 Release :

    - zurich

ft:locale :

    - en-US

ft:publication_title :

    - Zurich Build or modify applications

ft:clusterId :

    - cadev

bundleId :

    - cadev

workflow :

    - Development, Data, and Analytics


---

# Using source control

# Using source control in the ServiceNow IDE {#ariaid-title1}

* Release version: Zurich
* 
* Updated July 31, 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 minutes to read

Summarize  
![AI sparkle icon](https://servicenow.com/docs/portal-asset/ai-sparkle-icon) Summarized using AI  
This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.  

## Summary of Using source control in the ServiceNow IDE

This guide explains how ServiceNow customers can use Git source control features within the ServiceNow Integrated Development Environment (IDE) to manage application changes across development teams.
It requires admin role permissions and supports common Git workflows directly in the IDE, simplifying collaborative application development and version management.
Show full answer Show less  

## Key Features

* **Git Commands Integration:** Perform essential Git operations such as checkout, clone, commit, branch creation, discard changes, fetch, pull, push, stage, and stash directly from the Source Control view or command palette.
* **Checkout:** Switch branches or create and push branches to remote repositories, noting that only one branch per repository can be checked out on an instance or developer sandbox at a time.
* **Clone:** Add applications to your workspace by cloning remote repositories within the IDE.
* **Commit and Stage:** Stage desired changes and commit them locally with descriptive messages.
* **Discard Changes:** Undo unwanted modifications to applications easily.
* **Fetch, Pull, and Push:** Synchronize and update local and remote repositories to maintain up-to-date codebases.
* **Stash:** Temporarily save uncommitted changes to switch contexts and reapply them later, with support for pop, drop, list, apply, and clear stash commands.
* **Merge Conflict Resolution:** Identify files with merge conflicts via the Source Control view and resolve conflicts by choosing current, incoming, both changes, or manual editing within the editor.
* **Commit History:** View detailed commit logs per branch and file, with a diff editor to compare changes for selected commits.
* **Repository Management:** Change or update the remote repository URL connected to an application using the Git: Update remote origin command.

## Practical Benefits for ServiceNow Customers

* Streamlines team collaboration by integrating full Git source control capabilities directly in the ServiceNow IDE.
* Supports standard Git workflows, reducing context switching and accelerating development cycles.
* Enables efficient conflict management and version tracking to maintain application integrity.
* Facilitates easy onboarding and management of application repositories within ServiceNow environments.  
Use Git commands and other source control features in the ServiceNow IDE to manage changes to an application across a development team.

Role required: admin

## Git commands {#using-source-control-servicenow-ide__git-commands}

After initializing a local Git repository in the ServiceNow IDE, you can perform several Git commands from the Source Control view (![Source Control]()) or command palette, including but not limited to the following commands.
{#using-source-control-servicenow-ide__git-commands__entry__2}

| Command | Description |
|-|-|
| Checkout to (![More actions]() \> Checkout to...) Command palette: Git: Checkout to... | Check out another branch from the repository. Select the branch from the list or create a branch and push it to the remote repository. Only one branch per repository can be checked out at a time on an instance (or developer sandbox). |
| Clone (![More actions]() \> Clone) Command palette: Git: Clone | Clone a remote repository to add an application to your workspace. For more information, see [Clone a Git repository with the ServiceNow IDE](https://www.servicenow.com/docs/rEdqqORM5ESGFDi6N351xw "Clone a remote Git repository to collaborate on applications in source control with the ServiceNow IDE."). |
| Commit (![Commit]()) Command palette: Git: Commit | Commit your staged changes to the local repository. Enter a commit message to describe your changes. |
| Create branch (![More actions]() \> Branch \> Create branch...) Command palette: Git: Create branch... | Add a branch to a repository and check it out. |
| Discard (![Discard Changes]()) Command palette: Git: Discard Changes | Discard changes to undo modifications to an application. |
| Fetch (![More actions]() \> Fetch) Command palette: Git: Fetch | Fetch to sync commits and branches from the remote repository into the local repository. |
| Pull (![More actions]() \> Pull) Command palette: Git: Pull | Pull to merge the latest changes from the remote repository into the local repository. |
| Push (![More actions]() \> Push) Command palette: Git: Push | Push your committed changes to the remote repository. |
| Stage (![Stage Changes]()) Command palette: Git: Stage Changes | Stage the changes in your working directory that you want to commit. When you stage changes, files move from the Changes list to the Staged Changes list. |
| Stash (![More actions]() \> Stash) Command palette: Git: Stash, Git: Pop, Git: Drop, Git: List, Git: Apply, Git: Clear | Stash all uncommitted changes to save them in your working directory locally and come back to them later. The pop, drop, list, apply, and clear subcommands are supported when stashing. Select StashApply to reapply your changes in your working directory. |
[Table 1. Git commands in the ServiceNow IDE]

## Merge conflicts {#using-source-control-servicenow-ide__git-merge-conflicts}

If there's a conflict between local and remote changes in a file, the file is listed under Merge conflicts in the Source Control view (![Source Control]()). You can review conflicts in the editor and resolve them by accepting the current or incoming change, both, or manually editing the file.

## Commit history {#using-source-control-servicenow-ide__git-history}

The commit history for a branch is listed in the Commits section of the Source Control view (![Source Control]()) and includes details about the commits. To see the commit history for a file, navigate to the File Explorer view (![File Explorer]()), select the file, and expand the Timeline section. When you select a commit, a Diff editor comparing the changes opens.

## Repository changes {#using-source-control-servicenow-ide__section_dh4_kj4_bcc}

To update the remote repository an application is connected to, you can use the <kbd class="ph userinput">Git: Update remote origin</kbd> command from the command palette and enter a different remote repository URL.
**Related concepts**   

* [Connect to a Git provider using OAuth 2.0 with the ServiceNow IDE](https://www.servicenow.com/docs/1C0y3cFU~Z5z8AatdjrQTQ#connect-git-provider-oauth-2 "Set up an OAuth 2.0 application registry and credentials to connect to your Git provider from the ServiceNow IDE.")  
**Related tasks**   

* [Connect to a Git provider using basic authentication with the ServiceNow IDE](https://www.servicenow.com/docs/UiXx2L1YjF8_qtctNX6r3A "Connect to a Git domain using basic authentication credentials to manage applications in source control from the ServiceNow IDE.")
* [Configure a MID Server to use source control with the ServiceNow IDE](https://www.servicenow.com/docs/gRB_neLFhsZ2yOneTaAx4A "Configure a MID Server to use source control with the ServiceNow IDE if your Git provider is behind a firewall.")
* [Initialize a Git repository with the ServiceNow IDE](https://www.servicenow.com/docs/39ayJtXsapoMnJbLZ1rodw "Initialize a local Git repository for an application and push it to a remote Git repository to manage an application in source control.")

*[\>]: and then


