# Add

> Allows you to add files to version control via script.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor.VersionControl](/engine/6000.7/script-reference/unityeditor/versioncontrol.md)
* **Assembly:** UnityEditor.CoreModule

## Add(AssetList, bool)

Allows you to add files to [version control](/engine/6000.7/manual/get-started/project-configuration/version-control/versioncontrolintegration.md) via script.

```csharp
public static Task Add(AssetList assets, bool recursive)
```

### Parameters

**** (\[AssetList]\(/engine/6000.7/script-reference/unityeditor/versioncontrol/assetlist)): List of assets to add to version control system.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Set this to true if adding should be done recursively into subfolders.

### Returns

| Type                                                                       | Description |
| -------------------------------------------------------------------------- | ----------- |
| [Task](/engine/6000.7/script-reference/unityeditor/versioncontrol/task.md) |             |

### Remarks

If you have selected a [version control integration](/engine/6000.7/manual/get-started/project-configuration/version-control/versioncontrolintegration.md) in Unity's project settings panel, the default setting is for new files to be automatically added to [version control](/engine/6000.7/manual/get-started/project-configuration/version-control/versioncontrolintegration.md). However, you can disable the "Automatic add" option to prevent this. This method is intended to be used to allow you to add files to [version control](/engine/6000.7/manual/get-started/project-configuration/version-control/versioncontrolintegration.md) manually via script, if you have disabled "Automatic add".

### Examples

```csharp
using System.Collections.Generic;
using UnityEditor;
using UnityEditor.VersionControl;
using UnityEngine;

public class EditorScript : MonoBehaviour
{
    [MenuItem("Version Control/Add")]
    static void ExampleAdd()
    {
        AssetList assets = new AssetList();
        assets.Add(Provider.GetAssetByPath("Assets/ExampleAsset.cs"));
        Task t = Provider.Add(assets, recursive: false);
        t.Wait();
    }
}
```

## Add(Asset, bool)

Allows you to add files to [version control](/engine/6000.7/manual/get-started/project-configuration/version-control/versioncontrolintegration.md) via script.

```csharp
public static Task Add(Asset asset, bool recursive)
```

### Parameters

**** (\[Asset]\(/engine/6000.7/script-reference/unityeditor/versioncontrol/asset)): Single asset to add to version control system.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Set this to true if adding should be done recursively into subfolders.

### Returns

| Type                                                                       | Description |
| -------------------------------------------------------------------------- | ----------- |
| [Task](/engine/6000.7/script-reference/unityeditor/versioncontrol/task.md) |             |

### Remarks

If you have selected a [version control integration](/engine/6000.7/manual/get-started/project-configuration/version-control/versioncontrolintegration.md) in Unity's project settings panel, the default setting is for new files to be automatically added to [version control](/engine/6000.7/manual/get-started/project-configuration/version-control/versioncontrolintegration.md). However, you can disable the "Automatic add" option to prevent this. This method is intended to be used to allow you to add files to [version control](/engine/6000.7/manual/get-started/project-configuration/version-control/versioncontrolintegration.md) manually via script, if you have disabled "Automatic add".

### Examples

```csharp
using System.Collections.Generic;
using UnityEditor;
using UnityEditor.VersionControl;
using UnityEngine;

public class EditorScript : MonoBehaviour
{
    [MenuItem("Version Control/Add")]
    static void ExampleAdd()
    {
        AssetList assets = new AssetList();
        assets.Add(Provider.GetAssetByPath("Assets/ExampleAsset.cs"));
        Task t = Provider.Add(assets, recursive: false);
        t.Wait();
    }
}
```
