Skip to main content
Prefer a visual workflow? See Changes in the web UI.

Understanding Remotes

Remote sync is optional. All local Git-Semantic commands (init, add, commit, branch, merge, reset, log, status) work without a ByteRover account. You only need to log in and have a remote space when you want to push, pull, fetch, or clone.
A remote is a connection to a ByteRover cloud space. It allows you to synchronize your local context tree with the cloud, enabling team collaboration and backup. Git-Semantic supports a single remote named origin, which points to your space on ByteRover cloud. All sync operations (fetch, pull, push) communicate with this remote.

Remote URL Format

Team and space names in URLs are matched case-insensitively — Acme/Project.git and acme/project.git resolve to the same space.

Manage Remotes

View Current Remote

Check which remote is configured for your space:
Returns the configured remote URL (e.g., https://byterover.dev/acme/project.git), or “No remote configured” if none is set.

Add a Remote

Connect your local space to a remote space on ByteRover cloud. This is required before you can push, pull, or fetch.
Only origin is supported as a remote name. Attempting to add a remote with a different name will fail.

Update Remote URL

Change the URL of an existing remote. Use this when your space has been moved or renamed.

Remove a Remote

Disconnect your local space from ByteRover cloud. After removal, vc push, vc pull, and vc fetch will fail with NO_REMOTE until you add the remote back.
You can also remove the remote from the web UI Configuration page — the Remotes panel shows a Delete button with a confirmation step.

Error Handling

Fetch

Download the latest changes from ByteRover cloud without modifying your local context tree or current branch. Fetch lets you see what others have pushed before you decide to merge those changes into your work.

When to Use Fetch

Use fetch when you want to:
  • See what others have pushed without affecting your local work
  • Update remote-tracking branches before comparing (vc log --all)
  • Check for new remote branches (vc branch -a after fetching)
Fetch is always safe — it never modifies your local branches or working tree.

Arguments

Error Handling

Fetch operations have a 120-second timeout. If the operation times out, check your network connection and try again.

Pull

Fetch remote changes and merge them into your current branch. This is equivalent to running vc fetch followed by vc merge.

How Pull Works

  1. Fetches the latest refs from the remote
  2. Merges the remote branch into your current local branch
  3. If conflicts occur, the merge pauses — resolve them using the conflict resolution workflow

Pull Outcomes

Arguments & Flags

Error Handling

Pull operations have a 120-second timeout. For large spaces, ensure a stable network connection.

Push

Upload your local commits to ByteRover cloud. This makes your changes available to other team members.

Push Semantics

The behavior depends on which arguments you provide:
brv vc push feat/x (without origin) will fail — the first positional argument is always interpreted as the remote name. Always specify origin before the branch name.

First Push

When pushing a branch for the first time, use -u to set up upstream tracking:
This configures the remote branch as the upstream for your local branch, so future vc push and vc pull commands work without specifying the remote and branch.

Non-Fast-Forward Rejection

If the remote has commits that you don’t have locally (e.g., a teammate pushed changes), your push will be rejected with a NON_FAST_FORWARD error. To resolve:

Arguments & Flags

Error Handling

Push operations have a 120-second timeout. For large commits, ensure a stable network connection.
TUI users: If push, pull, or fetch encounters a NO_REMOTE error, the TUI shows an interactive prompt where you can enter your space URL directly. The command retries automatically after the remote is added — no need to run vc remote add separately.

Clone

Clone a remote space from ByteRover cloud to your local machine. This is the fastest way to start working with an existing team space.
The CLI streams real-time progress during the download.

What Clone Does

  1. Authenticates with ByteRover cloud using your credentials
  2. Downloads the full commit history and all branches
  3. Creates the .brv/ directory with the complete context tree
  4. Checks out the default branch (usually main)
  5. Configures origin remote pointing to the cloud space
After cloning, you still need to configure your author identity before you can commit.

Error Handling

Collaboration Workflows

Daily Team Sync

The most common pattern — pull before you start, push when you’re done:

Feature Branch Collaboration

Work on a feature branch and push it for team review:

Resolving Push Conflicts

When your push is rejected because a teammate pushed first:

Checking Remote State Without Merging

Use fetch to see what’s changed on the remote before deciding to merge: