Skip to main content

Git Quick Setup Guide

Connect a Koodisi application to Git in single mode (one app per repository) or multi mode (several apps in one repository). Do the three checks below first: most failed setups skip one of them.

Download this guide as a PDF to share with your team.

Before you start​

  1. Get the repository URL. In your Git provider (Azure DevOps, GitHub, GitLab), copy the repository's HTTPS clone URL, for example https://dev.azure.com/org/project/_git/my-repo.
  2. Create a Personal Access Token (PAT). It needs read and write access to code for that repository.
  3. Check the app type. The app must be an Orchestration app. Bundle apps can't use Git.

Which mode to pick​

Use single mode unless your apps are released together. You choose the mode when you connect the app.

Single modeMulti mode
Apps per repositoryOneSeveral, each in its own folder
BranchesBelong to that one appShared by every app in the repository
Deleting an appRemoves it from your workspace onlyCan also remove files that other apps share
Pick it whenApps release independentlyApps release together, or share components

For more on the trade-offs, see Single vs. Multi-Module Repositories.

Option A: single mode, new app​

  1. In the Applications panel, select + > Create.
  2. Choose New Application.
  3. Enter a Name. Leave Application Type as Orchestration.
  4. Turn on Enable Git control.
  5. Paste the repository URL into Remote Url.
  6. Leave Multi module repository unticked.
  7. Choose how to give your credentials:
    • New Credentials: enter a credential name, choose the Git Provider, then your username and Personal Access Token. Use this the first time.
    • Use Existing Credentials: pick one you saved before.
    • Continue Without Credential: Koodisi asks for them on every Git action.
  8. Select Create.
  9. Do the first commit. The app isn't in the repository until you do.

Option B: multi mode, several apps in one repository​

The first app you connect sets the shared repository for the whole workspace. Every app after it reuses that URL.

First app

  1. Follow Option A, steps 1 to 5.
  2. Tick Multi module repository.
  3. Choose your credentials and select Create.
  4. Do the first commit.

Every app after that

  1. Select + > Create > New Application, enter a Name, and turn on Enable Git control.
  2. Tick Multi module repository. Remote Url fills in from the workspace. Leave it as it is.
  3. Choose your credentials and select Create.
  4. Do the first commit.

Don't change the pre-filled URL. Koodisi warns "This action will move all your data from the current repository to this repository."

All apps in the repository share branches, so a branch made for one app exists for all of them.

Option C: add Git to an app you already built​

  1. In the Applications panel, right-click the app.
  2. Select Add Git to Application.
  3. Paste the repository URL into Remote Url.
  4. Tick Multi module repository only if the repository holds several apps.
  5. Choose your credentials and select Save.
  6. Do the first commit. Connecting the app doesn't push anything.

First commit​

After Options A, B or C your app is connected, but its files aren't in the repository yet. The first commit pushes them and creates the branch.

  1. Select the app, then select the Version Control icon in the right sidebar.
  2. On the Changes tab, select Stage all changes.
  3. Select Commit and Push.
  4. Keep or edit the commit message, then confirm.

It worked when Koodisi shows "All changes are committed and pushed successfully." The files then appear in your Git provider.

Teammates: clone the app​

Teammates clone the app from Git. They don't create it again.

  1. Select + > Create > Clone from git.
  2. Enter a Name. In multi mode, it must match the app's folder name in the repository exactly.
  3. Paste the repository URL into Remote Url.
  4. Tick Multi module repository if the repository is multi mode.
  5. Enter your own credentials, then select Create.

Deployment profiles aren't stored in Git, so each person who clones has to recreate them.

Common errors and fixes​

You seeWhat it meansFix
The saved Git credential may be invalid or expiredThe PAT is expired or wrongCreate a new PAT and update the credential
The credential does not have permission for this repository or operationThe PAT lacks accessGive the PAT read and write code access to the repository
Verify the repository URL and the credential's repository accessWrong URL, or the PAT can't see the repositoryCopy the HTTPS URL again, then check the PAT's access
Pushes to this branch are not permitted; you must use a pull requestThe branch is protectedPush to a feature branch, then raise a pull request
Bundle applications can't be used with GitThe app is a Bundle appUse an Orchestration app
Enable Git control is missingGit isn't turned on for the workspaceAsk your admin to check the workspace Git settings

For every Git error message, see the Troubleshooting Guide.

StageDocUse it for
UnderstandThe Development LifecycleThe path from first build to production
UnderstandWhat are Git-enabled applications?What Git adds to an app
UnderstandSingle vs. Multi-Module RepositoriesChoosing a mode
Set upCreating a Git-Enabled ApplicationOptions A and B in full
Set upAdd Git to an Existing ApplicationOption C in full
Set upManaging CredentialsSaving and updating Git credentials
Set upGit Branching PolicyBranch naming rules for the organization
Set upProtecting Deployment BranchesLocking the branches you deploy from
Daily workUsing Git with ApplicationsCommit, push, pull and branches
Daily workReviewing Commit HistorySeeing who changed what
Daily workGit Workflow for DevelopmentOrganizing branches
Daily workMerging and Pull RequestsGetting work into the main branch
Daily workSchema GuidelinesKeeping schemas Git-friendly
Daily workWorking with Git Applications: Best PracticesHabits that avoid trouble
TeamCloning Git ApplicationsTeammates getting a copy
TeamParallel Development with Multiple DevelopersSeveral people on one app
TeamManaging Deployment ProfilesRecreating profiles after a clone
Fix problemsTroubleshooting GuideEvery Git error message
Fix problemsHandling Merge Conflicts in NXRecovering from a conflict
Fix problemsManaging the Local DatastoreClearing and re-cloning local data
Clean upDeleting Git ApplicationsRemove vs Delete, by mode