master-wiki/03. Resources/Development/Git/So You Think You Know Git Part 2 - DevWorld 2024.md
Alexander Navarro eb51c17575 Update from obsidian - thinkpad
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
2024-04-17 09:08:35 -04:00

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`
![](Pasted%20image%2020240417084933.png)
## Git Hooks
![](Pasted%20image%2020240417084959.png)
useful ones:
![](Pasted%20image%2020240417085036.png)
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
![](https://www.youtube.com/watch?v=Md44rcw13k4)