Glossary
The words this documentation uses, in alphabetical order.
.gitnestedfileA small YAML or TOML file in each nested folder. It records the upstream, the branch, the upstream commit and the sync point. It is committed to your repository, but never pushed upstream. See The
.gitnestedfile.- join method
How a pull puts upstream changes and your local changes together:
merge(the default) orrebase. Set it with-M,--mergeor--rebase, or with themethodfield.- level file
A
.gitnested.level2,.gitnested.level3, … file. It lets you pull and push a nested repository that sits inside another nested repository. See Nested repositories inside nested repositories.- local commit
A commit of your repository that changes files in a nested folder, made after the last sync.
pushsends these upstream.- nested branch
A local branch,
nested/<subdir>by default. It holds the history of the nested folder as if it were its own repository.branch,pullandpushbuild it.cleanremoves it.- nested folder,
<subdir> The folder in your repository that holds the nested repository, for example
ext/lib. The commands take it as their first argument.- nested refs
Refs under
refs/nested/<subdir>/:fetch,branch,commit,push. They remember the last fetched, built, committed and pushed commits.git nested status -vshows them.git nested clean --forceremoves them.- nested repository
A folder of your repository whose content comes from another repository. It has a
.gitnestedfile.- parent repository
Your repository: the one that holds the nested folders.
- parent, sync point
The commit of your repository at which the nested folder and upstream were last equal. It is stored as
parentin.gitnested. git-nested rebuilds the nested history from there.- read-only
A nested repository you only pull.
pushrefuses it. Setreadonlytotruewithgit nested config.- review branch
The branch
pushuses upstream when you give no-b:<parent repository name>-<tracked branch>, for exampleapp-main. You can open a pull request from it.- squash
By default a pull makes one commit in your repository. With
--no-squashthe upstream commits are kept too, as the second parent of that commit.- tracked branch
The upstream branch a nested repository follows. It is stored as
branchin.gitnested.- upstream
The other repository: the one whose content is nested. Its URL or path is stored as
remotein.gitnested.- upstream commit
The commit of upstream that the nested folder is based on. It is stored as
commitin.gitnested.- worktree
A second working folder of your repository, made with
git worktree. git-nested checks out the nested branch there, under.git/tmp/nested/<subdir>by default. You resolve conflicts there.