# Source Control (Git)

Supported Git Platforms

Zerve supports integration with the following Git services:

* **GitHub (Cloud)**
* **GitHub Enterprise Server**
* **Bitbucket Cloud**
* **Bitbucket OAuth Consumer**
* **Azure DevOps Repos**

Each integration type requires setup steps that may vary slightly depending on the platform. Follow the relevant section below to configure your Git provider.

### Choosing Where to Install Git Integration: Individual vs. Organization

Zerve supports installing Git integrations at two levels, depending on how you want to manage access and repositories:

**Individual Installation**

This option allows a single user to connect their personal Git provider account (e.g., GitHub, Bitbucket, etc.) to Zerve. Use this when:

* You want to access only your own repositories.
* You're experimenting or working in a personal workspace.

**To access the installation page:**

* Click on your **profile picture** in the top-right corner.
* Select **Individual Settings** from the dropdown.
* Navigate to the **Git Integration** section.

#### **Organization Installation**

Install Git integration at the organization level to enable multiple team members to access shared repositories. Use this when:

* You’re collaborating in a team or company setting.
* You want centralized control over repository access.

**To access the installation page:**

* Click the **organization selector dropdown** in the top-left corner.
* Choose the relevant organization.
* Then click **Settings** in the organization context.
* Navigate to the **Git Integration** section.

### General Workflow and Features

This section outlines the key steps and capabilities involved in using the Zerve Git integration to manage your canvas source code and version history.

**1. Install or Connect Git Provider**

Choose and install your preferred Git provider (e.g., GitHub, Bitbucket, Azure DevOps) through either your individual or organization settings in Zerve.

**2. Grant Repository Access**

Authorize Zerve to access selected repositories by granting the necessary permissions during installation (read/write access is required).

**3. Select Repository in Canvas**

Within the Canvas environment, choose the Git repository where your canvas code will be saved and versioned.

**4. Commit and Push Code**

Save your changes by committing code directly from the canvas UI — Zerve automatically pushes the latest code and structure to your selected repository.

**5. View Commit History & Compare Changes**

Track the history of commits associated with each canvas and use the block-level diff viewer to compare versions or review changes.

**6. Create Branch**

Branching allows you to safely explore changes without affecting the main codebase — you can create new branches directly from within the canvas.

**7. Commit Branch**

After making changes on a branch, you can commit them like you would on the main branch — this keeps your development isolated until you're ready to merge.

**8. Merge Branch**

Bring changes from a branch back into the mainline by merging — Zerve integrates with your Git provider’s pull request and merge flow where applicable.

**9. Restore Previous Versions**

Easily revert to a prior state of your canvas by selecting a previous commit — Zerve will create a new canvas instance with the restored version.

**10. Include Repository in Execution Environment**

Linked repositories can be included as part of the canvas runtime environment, making it easy to import shared modules, utilities, or configuration directly from Git.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.zerve.ai/guide/source-control-git.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
