This page assumes you already completed Quick Start.
Quick Start gets you running. This page explains how to think about git-drs once the repo is connected and usable.
Use the tools at the right layer:
- use
gitfor commits, branches, merges, andgit pull - use
git-drsfor remote configuration, tracking rules, object hydration, upload/registration, and tracked-file delete reconciliation
The most important distinction is:
git pullupdates commits and checkout stategit drs pullhydrates tracked pointer files already present in the checkout
List and inspect the presets shipped with the current release:
git drs preset list
git drs preset show calyprThen add a named remote from a preset. For example, a scoped Calypr/Gen3 remote using a credential file is:
git drs remote add production calypr --scope <organization/project> \
--credential file:~/.gen3/credentials.jsonThis command:
- expands the preset into a pinned endpoint, provider, authentication method, and preset catalog version
- stores only the credential source, not an inline secret
- bootstraps repo-local
git-drswiring when it is missing
The built-in presets are calypr, terra, synapse, and cgc. Calypr/Gen3
and Terra have operational runtime adapters; Synapse and CGC are catalog-only
and execution commands reject them until their adapters are implemented. The local
remote name is optional: git drs remote add calypr ... derives the name
calypr. You can also connect an unlisted HTTPS endpoint directly:
git drs remote add research https://drs.example.org \
--provider ga4gh --auth nonegit clone <repo-url>
cd <repo-name>
git drs remote add production calypr --scope <organization/project> \
--credential file:~/.gen3/credentials.json
git drs pullIf the repository includes .git-drs/drs-policies.yaml, its canonical remote
and access-method default are loaded automatically. An authenticated committed
endpoint must be reviewed once before git-drs sends credentials:
git config --local --add drs.trusted-endpoint https://drs.example.orgClone-local remote configuration overrides the committed endpoint. Globus destination routing and credentials are never read from the committed policy.
mkdir my-data-repo
cd my-data-repo
git init
git drs remote add production calypr --scope <organization/project> \
--credential file:~/.gen3/credentials.json
git drs track "*.bam"
git add .gitattributes
git commit -m "Configure tracked files"Most work reduces to this loop:
-
update Git history
git pull
-
hydrate tracked files when needed
git drs pull
To hydrate only part of a repository instead of everything, use include filters:
git drs pull -I "data/sample.bam" git drs pull -I "*.vcf.gz"
If objects offer several transfer methods, normal pulls select one automatically. To prefer Globus while allowing fallback, or to require it for a single pull:
GIT_DRS_ACCESS_METHOD=prefer:globus git drs pull git drs pull --access-method globus
See Access-Method Selection for persistent per-remote preferences and diagnostics.
-
edit or add files normally
git add ... git commit -m "..." -
push data changes
git drs push
git drs push handles the DRS upload flow and the Git push flow together.
Use plain git push when you only want Git ref updates and do not want the git-drs registration/upload stage.
git drs track "*.bam"
git drs track "data/**"Always review and stage .gitattributes after changing tracking rules.
git drs ls-files
git drs ls-files -l
git drs ls-files --drsInterpretation:
*means the worktree has localized bytes-means the worktree still has a pointer
git drs rm sample.bam
git commit -m "Remove sample"
git drs pushThat is the supported delete flow for tracked git-drs objects. For the fuller decision tree, see Removing Files.
git drs remote remove production
git drs remote add production calypr --scope <organization/project> \
--credential file:/path/to/new-credentials.jsonThe unified command refuses to overwrite an existing remote. Remove and add it again when its endpoint, preset, or credential source must change. Prefer a refreshing helper or profile source when the provider supports one.
- Commands Reference for exact command syntax
- Troubleshooting when a real workflow breaks