Work with branches 
Branches and tags are refs under project_id.
Advance a branch interactively
This live demo advances refs/heads/main with REF_UPDATE after submitting a COMMIT_BUNDLE. The remaining ref operations below use the same project-scoped authorization model and CAS semantics.
Next step
Fork a project
→
Core operations
- create a ref with
REF_UPDATEand emptyold_hash - advance a ref with
REF_UPDATE - reset a ref with
REF_UPDATEandforce = true - delete a ref with
REF_DELETE
V2 notes
- refs are project-scoped
- the acting principal is
owner_address - CAS semantics remain unchanged
- deleting a ref does not delete commit metadata
Learn more
Next steps
- Fork a project — create a descendant project from an anchored source ref
- Open a merge request — understand how branch and fork state feed into proposals