Affected files: 03. Resources/Development/Git/Git.md 03. Resources/Development/Git/Pasted image 20240417084933.png 03. Resources/Development/Git/Pasted image 20240417084959.png 03. Resources/Development/Git/Pasted image 20240417085036.png 03. Resources/Development/Git/So You Think You Know Git Part 2 - DevWorld 2024.md
65 lines
1.2 KiB
Markdown
65 lines
1.2 KiB
Markdown
# So You Think You Know Git Part 2 - DevWorld 2024
|
|
|
|
## Switch and Restore
|
|
|
|
Wrapper around the `checkout` command to make more sense. You can do:
|
|
|
|
- `git switch branch` instead of `git checkout bracnh`
|
|
- `git restore file.txt` instead of `git checkout file.txt`
|
|
|
|

|
|
|
|
## Git Hooks
|
|
|
|

|
|
|
|
useful ones:
|
|
|
|

|
|
|
|
uses:
|
|
|
|
- Commit message formatting
|
|
- package install
|
|
- update ctags
|
|
- submodule status
|
|
- tabs or spaces
|
|
- linting
|
|
- large files
|
|
- test passes
|
|
|
|
Helpers (installable external tools):
|
|
|
|
- pre-commits
|
|
- husky
|
|
|
|
## Attributes
|
|
|
|
run files through intermediates and diff that:
|
|
|
|
```bash
|
|
echo '*.png diff=lexif' >> .gitattributes
|
|
git config diff.exif.textconv exiftool
|
|
```
|
|
|
|
## Fixup Commits
|
|
|
|
`git commit --fixup=<commit>`
|
|
`git rebase --autosquash`
|
|
|
|
## Rebasing Stacks
|
|
|
|
move dangling branches reference when doing a rebase
|
|
|
|
`git rebase --update-refs`
|
|
|
|
## Scaling Git
|
|
|
|
top level command `scalar`, it's only used to clone huge repositories.
|
|
|
|
## Worktrees
|
|
|
|
- working on more than one branch at a time
|
|
- provide a new working directory to each branch
|
|
|
|

|