197 lines
6.0 KiB
Markdown
197 lines
6.0 KiB
Markdown
---
|
||
title: References
|
||
TARGET DECK: Obsidian::STEM
|
||
FILE TAGS: git
|
||
tags:
|
||
- git
|
||
---
|
||
|
||
## Overview
|
||
|
||
A **reference** is essentially a file containing an oid. The name of the file can then be used to reference the oid. A **symbolic reference** is a file containing the name of another reference.
|
||
|
||
%%ANKI
|
||
Basic
|
||
What is a git ref?
|
||
Back: A user-friendly name for referring to some git object.
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454031260-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
How is a git ref realized on disk?
|
||
Back: It is a file containing an oid.
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454031263-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
What shorter terminology refers to "git references"?
|
||
Back: Git refs.
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454031266-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
Where on disk are git refs stored?
|
||
Back: In the `.git/refs` directory.
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454031269-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
Where on disk are git local branch refs stored?
|
||
Back: `.git/refs/heads`
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454031271-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
Where on disk are git remote branch refs stored?
|
||
Back: `.git/refs/remotes`
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454031273-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Cloze
|
||
The {`update-ref`} plumbing command is used to manage {reference files}.
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454031275-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
Why is the `update-ref` command's name a slight misnomer?
|
||
Back: It is also used to create references.
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454031277-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
What plumbing command is used in favor of manually editing reference files?
|
||
Back: `update-ref`
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454031279-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
How do I complete the following command to update `master` to the new oid?
|
||
```bash
|
||
$ git update-ref ___ 1a410efbd13591db07496601ebc7a059dd55cfe9
|
||
```
|
||
Back: `refs/heads/master`
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454031281-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
Git (basically) invokes what plumbing command on new branch creation?
|
||
Back: `update-ref`
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454031283-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
What is a git symbolic ref?
|
||
Back: A git ref that points to another ref (as opposed to an oid).
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454758061-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
Which symbolic ref is most commonly used?
|
||
Back: `HEAD`
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454758064-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
What does it mean to be in "detached head state"?
|
||
Back: `HEAD` refers to an oid instead of another ref.
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454758066-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
What term describes when `HEAD` is a normal ref instead of a symbolic ref?
|
||
Back: Detached head state.
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454758068-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
Where on disk is `HEAD` normally located?
|
||
Back: `.git/HEAD`
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454758070-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
What does the contents of `.git/HEAD` normally look like?
|
||
Back: `ref: refs/heads/<BRANCH>`
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454758071-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
What does the contents of `.git/HEAD` look like in detached head state?
|
||
Back: `<OID>`
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454758073-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
What plumbing command is used in favor of manually editing symbolic reference files?
|
||
Back: `symbolic-ref`
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454758074-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Cloze
|
||
Normal refs are to {`update-ref`} whereas symbolic refs are to {`symbolic-ref`}.
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454758076-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Cloze
|
||
The {`symbolic-ref`} plumbing command is used to manage {symbolic reference files}.
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454758077-->
|
||
END%%
|
||
|
||
%%ANKI
|
||
Basic
|
||
How do you correctly write the following command?
|
||
```bash
|
||
$ git symbolic-ref HEAD test
|
||
```
|
||
Back:
|
||
```bash
|
||
$ git symbolic-ref HEAD refs/heads/test
|
||
```
|
||
Reference: Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014).
|
||
<!--ID: 1710454758079-->
|
||
END%%
|
||
|
||
## References
|
||
|
||
* Scott Chacon, *Pro Git*, Second edition, The Expert’s Voice in Software Development (New York, NY: Apress, 2014). |