Version Control Reference#

This reference provides technical specifications for how AI Workbench works with Git.

Overview#

This reference guide cover version control concepts and how AI Workbench works with Git. It covers topics like Git feature support within the Desktop App, interoperability with other Git clients, and Git operation behavior and constraints in the Desktop App.

For conceptual understanding of version control, see Version Control in AI Workbench. For step-by-step procedures, see How to Use Version Control.

Key Concepts#

Git Affordances:

UI features and automated behaviors AI Workbench adds to Git operations (auto-generated commit messages, visual diff, merge conflict resolution UI).

Git Client Interoperability:

The ability to use external Git tools (terminal, VS Code, GitKraken, etc.) alongside AI Workbench with standard Git operations.

Git Features Supported in the Desktop App and CLI#

AI Workbench can consume or set your global author information in the Git configuration.

If the git author has already been set, AI Workbench will use it. If it hasn’t been set, you will be prompted to configure it.

This can be done in the Settings page in the Desktop App, or it will happen when you connect an integration to a Git platform.

Most Git operations are NOT available as features in the AI Workbench Desktop App or CLI.

For example, the following do not have corresponding features within the UI:

  • git rebase - Reapply commits on top of another base

  • git cherry-pick - Apply specific commits from one branch to another

  • git stash - Temporarily save uncommitted changes

  • git reflog - View reference logs

  • Interactive history editing

  • Creating branches at specific commits (only current commit supported in UI)

  • Selective staging (partial commits)

However, AI Workbench does not block you from doing these operations in the terminal or Git clients.

AI Workbench works with the repository as is, so any changes made to it by other means will appear in the Workbench UI and will work fine.

The table below lists the Git operations with features in the AI Workbench UI.

Git Feature

Description

Desktop App Feature

CLI Feature

git clone

Clone a repository into a new directory

Clone Project button on main page

clone

git commit

Create a commit with current changes

Commit button on project page

commit

Create and switch to a new branch

Create Branch in Branches section

create branch

git branch -d | -D

Delete a branch

Delete button in Branches section

delete branch

git restore

Discard uncommitted changes

Discard Changes in Changes section

discard

git fetch

Fetch changes from remote

Fetch button

fetch

git log

Show commit history

History section in sidebar

history

git merge

Merge branches

Merge Branch in Branches section

merge

git push --set-upstream

Publish project to remote for first time

Publish button

publish

git pull

Pull changes from remote

Pull button

pull

git push

Push commits to remote

Push button

push

git switch

Switch to existing branch

Branch list in Branches section

switch-branch

AI Workbench Git Implementation#

AI Workbench uses standard Git under the hood with no proprietary extensions.

All Git operations are standard Git commands. AI Workbench reads Git state in real-time to update the UI.

For details on project registration, Git configuration generation, and Git LFS setup, see Git Configuration Reference.

AI Workbench monitors Git status in real-time for file tracking and providing you with file status.

  • The Changes section shows modified, added, and deleted files

  • File status is relative to the last commit (HEAD)

  • Changes are calculated using Git diff under the hood

  • Status updates automatically when files change

Commit Behavior#

Desktop App Commit Model:

  • All changes in the working directory are included in commits

  • No staging area exposed in the UI (all files treated as staged)

  • Auto-generated commit message lists changed files

  • Commit message is editable before confirming

Consequence: Cannot make partial commits (selective staging) in the Desktop App.

Solution: Use git add and git commit in the terminal for selective commits.

Branch Operations#

Branch Creation:

  • Branches created in Desktop App start from the current commit (HEAD)

  • Cannot create branches at historical commits via UI

Branch Switching:

  • Requires clean working directory (no uncommitted changes)

  • AI Workbench validates working directory state before switching

  • Dirty working directory blocks branch switching

Branch Deletion:

  • Desktop App requires branch to be fully committed and pushed

  • Cannot force delete branches with uncommitted changes via UI

  • Use git branch -D <branch-name> in terminal to force delete

Merge Conflict Resolution#

AI Workbench provides three resolution strategies:

  1. My Changes: Keep all changes from current branch, discard incoming changes

  2. Their Changes: Accept all incoming changes, discard current branch changes

  3. Edit Manually: Open files in editor to resolve conflicts line-by-line

Conflict Markers:

When editing manually, Git inserts conflict markers:

<<<<<<< HEAD
Content from current branch
=======
Content from incoming branch
>>>>>>> branch-name

Remove markers and edit to desired final state.

Interoperability with External Git Clients#

Git CLI Compatibility#

You can use Git in the terminal alongside AI Workbench without issues.

  • Commits made in terminal appear in AI Workbench History

  • Branches created in terminal appear in Branches section

  • File changes are reflected in Changes section

  • Push/pull operations from terminal update AI Workbench state

Exception: Do NOT use git clone or git init outside AI Workbench.

Third-Party Git Client Compatibility#

AI Workbench works with external Git clients (VS Code, GitKraken, etc.).

  • All Git operations are standard Git under the hood

  • External clients read and write the same .git directory

  • No lock-in or proprietary Git extensions

Mixed-Mode Operation Considerations#

Most operations work seamlessly between AI Workbench and external clients.

Exceptions where mixing can cause issues:

  • Rebasing with conflicts: Complete the entire rebase operation in the terminal. AI Workbench may trigger merge resolution flows that will not work correctly.

  • Interactive operations: AI Workbench cannot participate in interactive Git operations (interactive rebase, interactive add, etc.).

Constraints and Limitations#

UI Constraints#

Operations NOT supported in Desktop App:

  • Selective staging (partial commits)

  • Creating branches at specific commits

  • Rebasing

  • Cherry-picking

  • Viewing reflog

  • Interactive Git operations

  • Stashing

Use Git in the terminal for these operations.

Merge Resolution Constraints#

  • My Changes and Their Changes are all-or-nothing strategies

  • Cannot selectively resolve conflicts file-by-file using these strategies

  • Use Edit Manually for fine-grained conflict resolution

Branch Switching Constraints#

  • Requires clean working directory

  • Cannot switch with uncommitted changes

  • Commit or discard changes before switching

Automated Commit Messages#

AI Workbench generates commit messages listing changed files.

Example auto-generated message:

Updated files:
- src/preprocessing.py
- notebooks/analysis.ipynb
- data/dataset.csv

Best Practice: Edit the message to describe WHY changes were made, not just WHAT changed.