How to do stuff with git
+Staging a subset of changes in a file
+-------------------------------------
+
+ git add -p
+
+ y - stage this hunk
+ n - do not stage this hunk
+ q - quit; do not stage this hunk or any of the remaining ones
+ a - stage this hunk and all later hunks in the file
+ d - do not stage this hunk or any of the later hunks in the file
+ g - select a hunk to go to
+ / - search for a hunk matching the given regex
+ j - leave this hunk undecided, see next undecided hunk
+ J - leave this hunk undecided, see next hunk
+ k - leave this hunk undecided, see previous undecided hunk
+ K - leave this hunk undecided, see previous hunk
+ s - split the current hunk into smaller hunks
+ e - manually edit the current hunk
+ ? - print help
+
+https://git-scm.com/docs/git-add#Documentation/git-add.txt-patch
+
Splitting a repo
----------------
| sort -u > /tmp/tree.old
$ git ls-tree -r --name-only HEAD > /tmp/tree.new
$ git filter-branch \
+ --force \
--prune-empty \
--index-filter '
grep -Fvxf /tmp/tree.new /tmp/tree.old \
---------------------------
```sh
git checkout --orphan $TEMP_BRANCH
-git rm -rf .
+git rm -rf *
git commit --allow-empty -m $INIT_COMMIT_MSG
git rebase --onto $TEMP_BRANCH --root $MAIN_BRANCH
git branch -d $TEMP_BRANCH