Merge branch 'dt/refs-pseudo'
To prepare for allowing a different "ref" backend to be plugged in to the system, update_ref()/delete_ref() have been taught about ref-like things like MERGE_HEAD that are per-worktree (they will always be written to the filesystem inside $GIT_DIR). * dt/refs-pseudo: pseudoref: check return values from read_ref() sequencer: replace write_cherry_pick_head with update_ref bisect: use update_ref pseudorefs: create and use pseudoref update and delete functions refs: add ref_type function refs: introduce pseudoref and per-worktree ref concepts
This commit is contained in:
@ -411,6 +411,27 @@ exclude;;
|
||||
core Git. Porcelains expose more of a <<def_SCM,SCM>>
|
||||
interface than the <<def_plumbing,plumbing>>.
|
||||
|
||||
[[def_per_worktree_ref]]per-worktree ref::
|
||||
Refs that are per-<<def_working_tree,worktree>>, rather than
|
||||
global. This is presently only <<def_HEAD,HEAD>>, but might
|
||||
later include other unusual refs.
|
||||
|
||||
[[def_pseudoref]]pseudoref::
|
||||
Pseudorefs are a class of files under `$GIT_DIR` which behave
|
||||
like refs for the purposes of rev-parse, but which are treated
|
||||
specially by git. Pseudorefs both have names that are all-caps,
|
||||
and always start with a line consisting of a
|
||||
<<def_SHA1,SHA-1>> followed by whitespace. So, HEAD is not a
|
||||
pseudoref, because it is sometimes a symbolic ref. They might
|
||||
optionally contain some additional data. `MERGE_HEAD` and
|
||||
`CHERRY_PICK_HEAD` are examples. Unlike
|
||||
<<def_per_worktree_ref,per-worktree refs>>, these files cannot
|
||||
be symbolic refs, and never have reflogs. They also cannot be
|
||||
updated through the normal ref update machinery. Instead,
|
||||
they are updated by directly writing to the files. However,
|
||||
they can be read as if they were refs, so `git rev-parse
|
||||
MERGE_HEAD` will work.
|
||||
|
||||
[[def_pull]]pull::
|
||||
Pulling a <<def_branch,branch>> means to <<def_fetch,fetch>> it and
|
||||
<<def_merge,merge>> it. See also linkgit:git-pull[1].
|
||||
|
Reference in New Issue
Block a user