M package.j # FIRST FROM STAGE TO HEAD
MM package.j # FIRST FROM STAGE TO HEAD + FROM TRACKED FILE TO STAGE
UU src/compo # IN MERGE / FROM BRANCH AND HEAD ARE UPDATED
UD src/compo # IN MERGE / FROM BRANCH UPDATED AND DELETE FROM HEAD
~/.gitconfig
~/.git-credentials
https://realpython.com/python-reduce-function/
https://ohmygit.org/
An open source game about learning Git!
https://initialcommit.com/blog/git-commit-messages-best-practices
Using git cherry-pick in combination with the --no-commit flag allows you to apply the changes while keeping them in the working directory and the staging area, instead of automatically creating a new commit.
git cherry-pick --no-commit <commit_hash>
https://stackoverflow.com/questions/8691199/what-does-t-mean-in-git-status-it-isnt-in-the-man-page
https://www.flagship.io/git-branching-strategies/
https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
PROTIP: Always use submodules via $ git submodules <>
, and not via .gitmodules, bc it updates all the refs required.
Git checkout on the parent repo does not change auto to the child repos:
Once you checkout the desired branch that points to specific commits
you should point the specific commits with git submodule init && git submodule update
https://git-scm.com/book/en/v2/Git-Tools-Submodules
https://dev.to/colinmcd01/git-submodules-gbp
https://stackoverflow.com/questions/4526910/rename-a-git-submodule
https://git-scm.com/docs/git-worktree
https://opensource.com/article/21/4/git-worktree
Pro: My alias
gwt='git worktree'
gwta='git worktree add'
gwtls='git worktree list'
gwtmv='git worktree move'
gwtrm='git worktree remove'
https://dev.to/nichartley/whats-a-git-tree-5149