# Version Control

{% hint style="info" %}
The illustration for pushing the Pipeline for versioning/migration has been provided below.
{% endhint %}

![Push For Pipeline Versioning.](https://972575688-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRYq1HgffNfbnIMWPu1D5%2Fuploads%2FFdbqomdfotuylaBd9PqN%2FPushVCS.gif?alt=media\&token=fe3b6bab-ca29-4749-8e11-fb41c31afb53)

{% hint style="success" %}
*The **Push to VCS** and **Pull Pipeline*** ***from GIT** features are present on the* [***List Pipeline*** ](https://docs.bdb.ai/bdb-documentation/data-pipeline/getting-started/homepage/list-pipeline)*and* [***Pipeline Editor*** ](https://docs.bdb.ai/bdb-documentation/data-pipeline/getting-started/pipeline-workflow-editor)*pages.*
{% endhint %}

### Pushing a Pipeline into VCS

* Navigate to the ***Pipeline List*** page.
* Select a data pipeline from the displayed list.
* Click the ***Push Pipeline*** icon for the selected data pipeline.                                &#x20;

![Pushing a Pipeline to VCS](https://972575688-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRYq1HgffNfbnIMWPu1D5%2Fuploads%2FAkswdf3CJxr4dONVS4bD%2Fimage.png?alt=media\&token=67762e00-9ea0-4dd8-938f-2c64d6b4475f)

* The ***Push into Version Controlling System*** dialog box appears.
* Provide a ***Commit Message*** (required) for the data pipeline version.
* Select a ***Push Type*** out of the below-given choices to push the pipeline:&#x20;
  1. ***Version Control:*** For versioning of the pipeline in the same environment.
  2. ***GIT Export*** (Migration): This is for pipeline migration. The pushed pipeline can be migrated to the destination environment from the migration window in Admin Module.
* Click the ***Ok*** option.

&#x20;     ![](https://972575688-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRYq1HgffNfbnIMWPu1D5%2Fuploads%2Fu0AsJm6ybL2IlK82gPpG%2Fimage.png?alt=media\&token=9f539020-c3e4-4319-9c35-307be855cc9b)

* A notification message appears to confirm the completion of the action.                                           &#x20;

![](https://972575688-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRYq1HgffNfbnIMWPu1D5%2Fuploads%2FqFCXeFBWsTMGNwQko86V%2Fimage.png?alt=media\&token=3e02a11b-9aad-4bed-b031-faa156432b66)

{% hint style="info" %}
*Check out the below-given illustrations on how to attempt **Version Control** and **Pipeline Migration**.*
{% endhint %}

***Version Control:***

![Push For Pipeline Versioning.](https://972575688-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRYq1HgffNfbnIMWPu1D5%2Fuploads%2FFdbqomdfotuylaBd9PqN%2FPushVCS.gif?alt=media\&token=fe3b6bab-ca29-4749-8e11-fb41c31afb53)

***Pipeline Migration:***

![Push For Migration](https://972575688-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRYq1HgffNfbnIMWPu1D5%2Fuploads%2FLUGpKGhTKAVBWjQnWAGu%2FMigration_push.gif?alt=media\&token=f706cdfc-65c5-4954-90b5-0930d72309c4)

{% hint style="info" %} <mark style="color:green;">Please Note:</mark>

* The pipeline pushed to the VCS using the Version Control option, can be pulled directly from the ***Pull Pipeline from GIT*** <img src="https://972575688-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRYq1HgffNfbnIMWPu1D5%2Fuploads%2FTuKAKjbxBJT7EzdaBRJ0%2Fimage.png?alt=media&#x26;token=9a4ee1ce-da05-4a74-b50a-a560b606eb7d" alt="" data-size="line"> icon.
* The user also gets an option to ***Push the pipeline to GIT***. **This action will be considered as Pipeline Migration.**
  {% endhint %}

### Pulling a Pipeline from GIT

This feature is for pulling the previously moved versions of a pipeline that are committed by the user. This can help a user significantly to recover the lost pipelines or avoid unwanted modifications made to the pipeline.

{% hint style="info" %}
Check out the walk-through on how to pull a pipeline version from the GIT.
{% endhint %}

![Pulling a pipeline version committed earlier ](https://972575688-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRYq1HgffNfbnIMWPu1D5%2Fuploads%2Fkla8Phbldn1w69tewnOb%2FPull_from_vcs.gif?alt=media\&token=fa3c63bb-9c4f-4acb-a66e-299fd1e0a4f0)

* Navigate to the ***Pipeline List*** page.
* Select a data pipeline from the displayed list.
* Click the ***Pull from GIT*** icon for the selected data pipeline.      &#x20;

![Pulling a Pipeline version from the GIT](https://972575688-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRYq1HgffNfbnIMWPu1D5%2Fuploads%2FoJZmlXSEDK2crBzkBRc6%2Fimage.png?alt=media\&token=58f185da-3207-4ebb-bb8a-eac0c408af1c)

* The ***Pull from GIT*** dialog box appears.
* Select the data pipeline version by marking the given checkbox.
* Click the ***Ok*** option.

&#x20;    ![](https://972575688-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRYq1HgffNfbnIMWPu1D5%2Fuploads%2Fnb0hCYvLU3DQt9YQ7wU4%2Fimage.png?alt=media\&token=9efd37a1-af16-493d-a5de-4093bc7b7287)

* A confirmation message appears to assure the users that the concerned pipeline workflow has been imported.    &#x20;

![](https://972575688-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRYq1HgffNfbnIMWPu1D5%2Fuploads%2FpbS9K96LhUgmOaeKhfop%2Fimage.png?alt=media\&token=bed9a058-f6bf-4dac-a0c8-3ca57fa53532)

* Another confirmation message appears to assure the user that the concerned pipeline workflow has been pulled.   &#x20;

![](https://972575688-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRYq1HgffNfbnIMWPu1D5%2Fuploads%2FPnJrJvPXFnAX6PZXw6gh%2Fimage.png?alt=media\&token=3d6ceabe-672f-4ca1-a9e4-3af1b97bcfac)

{% hint style="info" %} <mark style="color:green;">Please Note:</mark>

* The pipeline that you pull will be changed to the selected version. Please make sure to manage the versions of the pipeline properly.
* Refer ***Migrating Pipeline*** described as a part of the [*<mark style="color:blue;">**GIT Migration**</mark>*](https://docs.bdb.ai/bdb-documentation/core-platform/platform-administration/admin-panel-options/git-migration) (under the Administration section) on how to pull an exported/migrated Pipeline version from the GIT.&#x20;

{% endhint %}
