85 lines
3.0 KiB
Markdown
85 lines
3.0 KiB
Markdown
```markmap
|
||
# Appendix C: Git Commands
|
||
## Context / Why this appendix exists
|
||
- The book introduces “dozens” of Git commands
|
||
- Commands were introduced inside a narrative
|
||
- Added “slowly” as the story progressed
|
||
- Result of narrative approach
|
||
- Examples/usage of commands are “somewhat scattered” throughout the book
|
||
- Goal of this appendix
|
||
- Go through **all Git commands addressed throughout the book**
|
||
- Group them “roughly by what they’re used for”
|
||
- For each command
|
||
- Explain **very generally** what it does
|
||
- Point out **where in the book** it was used
|
||
|
||
## Tip / Note: Abbreviating long options
|
||
- You can abbreviate long options (when unambiguous)
|
||
- Example
|
||
- `git commit --a` behaves like `git commit --amend`
|
||
- Constraint
|
||
- Abbreviation works **only** when the letters after `--` are **unique** among options
|
||
- Guidance for scripting
|
||
- Use the **full option** when writing scripts
|
||
|
||
## Setup and Config
|
||
- Two commands used “quite a lot”
|
||
- From the **first invocations** of Git
|
||
- Through **common every day** tweaking and referencing
|
||
- The two commands
|
||
- `git config`
|
||
- `git help`
|
||
|
||
### `git config`
|
||
- Core idea
|
||
- Git has a **default way** of doing “hundreds of things”
|
||
- `git config` lets you change those defaults and set preferences
|
||
- What configuration can include (examples given)
|
||
- Your **name**
|
||
- Your **email address**
|
||
- Your **editor** preference
|
||
- Specific **terminal color** preferences
|
||
- (More generally) “hundreds of things” Git can be told to do differently
|
||
- How configuration is stored/applied
|
||
- Multiple files are involved
|
||
- The command can **read from** and **write to** several files
|
||
- Scope flexibility
|
||
- Set values **globally**
|
||
- Or down to **specific repositories**
|
||
|
||
#### How often it appears in the book
|
||
- “Used in nearly every chapter of the book”
|
||
|
||
#### Where the book used `git config` (as listed)
|
||
- **First-Time Git Setup**
|
||
- Used to specify
|
||
- Name
|
||
- Email address
|
||
- Editor preference
|
||
- Noted as happening “before we even got started using Git”
|
||
- **Git Aliases**
|
||
- Used to create shorthand commands (aliases)
|
||
- Aliases expand to long option sequences
|
||
- Purpose: avoid typing long sequences every time
|
||
- **Rebasing**
|
||
- Used to make `--rebase` the default behavior when running `git pull`
|
||
- **Credential Storage**
|
||
- Used to set up a default store for HTTP passwords
|
||
- **Keyword Expansion**
|
||
- Used to set up
|
||
- “smudge” filters
|
||
- “clean” filters
|
||
- Purpose: manage content coming **into** and going **out of** Git
|
||
- **Git Configuration**
|
||
- “Basically the entirety” of that section/chapter is dedicated to `git config`
|
||
|
||
### `git config core.editor` (editor configuration)
|
||
- Mentioned as a specific configuration focus
|
||
- “git config core.editor commands”
|
||
- Linked context
|
||
- Accompanies the configuration instructions in **Your Editor**
|
||
- What is stated
|
||
- Many editors can be set using `core.editor`
|
||
- Boundary of provided material
|
||
- The excerpt ends just before listing the specific editor command examples
|
||
``` |