2021-11-30 14:49:01 +00:00
|
|
|
# Git
|
|
|
|
|
2022-04-08 08:17:05 +00:00
|
|
|
### Pronouns
|
|
|
|
- us: changes on the branch I am rebasing onto (eg. the master), usually "the good official one"
|
|
|
|
- they: changes of the branch I am rebasing (eg. feature branch)
|
|
|
|
|
|
|
|
### Search keyword
|
|
|
|
```git log -S <keyword>```
|
|
|
|
|
|
|
|
### Fetch and remove deleted branches
|
|
|
|
```git fetch --prune```
|
|
|
|
|
|
|
|
### Worktree
|
|
|
|
```
|
|
|
|
git worktree add <path> <branch>
|
|
|
|
git worktree remove [--force] <path>
|
|
|
|
```
|
|
|
|
Use force if you have initialized submodules in the worktree.
|
|
|
|
|
|
|
|
### Rebase multiple divergent branches
|
|
|
|
```git rebase --interactive --onto <newparent> <oldparent>```
|
|
|
|
|
2021-11-30 14:49:01 +00:00
|
|
|
### What commit added a certain file?
|
2021-11-30 14:52:50 +00:00
|
|
|
```git log --diff-filter=A -- path/file```
|
2021-11-30 14:49:01 +00:00
|
|
|
|
2022-04-08 08:17:05 +00:00
|
|
|
### Changes of a certain file
|
2021-11-30 14:52:50 +00:00
|
|
|
```git diff <branch> -- path/file```
|
2021-11-30 14:50:45 +00:00
|
|
|
|
2022-04-08 08:17:05 +00:00
|
|
|
### Git pull strategy
|
2021-11-30 14:50:45 +00:00
|
|
|
```
|
|
|
|
hint: Pulling without specifying how to reconcile divergent branches is
|
|
|
|
hint: discouraged. You can squelch this message by running one of the following
|
|
|
|
hint: commands sometime before your next pull:
|
|
|
|
hint:
|
|
|
|
hint: git config pull.rebase false # merge (the default strategy)
|
|
|
|
hint: git config pull.rebase true # rebase
|
|
|
|
hint: git config pull.ff only # fast-forward only
|
|
|
|
hint:
|
|
|
|
hint: You can replace "git config" with "git config --global" to set a default
|
|
|
|
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
|
|
|
|
hint: or --ff-only on the command line to override the configured default per
|
|
|
|
hint: invocation.
|
|
|
|
```
|
|
|
|
|