Here are two talks about Git I gave in the last two years, at HumanTalks Compiègne. I added the slides as well.
Here are some resources to go deeper with Git.
- Tech Talk: Linus Torvalds on git
- Git Version Control Tutorial
- Git from the inside out
- Learn git concepts, not commands
- gitignore.io: auto generate .gitignore files
- gitignore: A collection of useful .gitignore templates
- Git - Difference Between 'assume-unchanged' and 'skip-worktree'
- How We Cut Latency Down by 30k% on Our Git Server
- Gitrob – Évitez la catastrophe sur Github
- What does "git pull --rebase" do?
- The magical (and not harmful) rebase
- The mighty reflog and the amazing bisect
- More productive Git
- Notre cours vidéo GitHub est sorti !
- Learn Enough Git to Be Dangerous
- A Git Horror Story: Repository Integrity With Signed Commits
- How to Shrink a Git Repository
- How to squash all git commits into one?
- Gitminer – Pour fouiller Github en profondeur
- Git reset : rien ne se perd, tout se transforme
- Flight rules for git
- Entrer dans les entrailles de Git, ou comment faire un commit sans faire du Git (Alexandre Garnier)
- Bien utiliser Git merge et rebase
- Auto-squashing Git Commits
- git worktree
- Git stuff
- Git Tip of the Week: Merging Revisited
- Git caret and tilde
- The anatomy of a Git commit
- The Biggest Misconception About Git
- Git gc
Rebasing and cherry-picking
Rebases mostly use
git am, which given diffs apply them sequentially. Diffs are computed between a given commit and its parent.
On the other hand, cherry-picks uses a three-way merge to notice file renames.
More on the topic below:
- What algorithm is used during Git rebase?
- Issue with cherry pick: changes from previous commits are also applied
- In a Git cherry-pick or rebase merge conflict, how are BASE (aka “the ancestor”), LOCAL, and REMOTE determined?
- How To Set Up Automatic Deployment with Git with a VPS
- Setting up Push-to-Deploy with git
- One-click App Deployment with Server-side Git Hooks
- Deploying With Git
- How to Write a Git Commit Message
- Commit messages are not titles
- Git your act together
- The Art of the Commit
- Conventional Commits
Sub-projects management: submobules and subtrees
- Using Git subtrees for repository separation
- Submodules GIT: pourquoi, comment ?
- Comprendre et maîtriser les submodules Git
- Subtree Merging (official documentation)
- Mastering Git subtrees:
git subtreeare two different commands.
- The power of Git subtree