Introduction
- πΊ Git Tutorial β’ 6 video playlist by Ben Kadel.
- πΊ Git Tutorials β’ 7 video playlist by GitKraken explaining git basics on a whiteboard.
Branching & Merging
- How to branch off of a feature branch (while you wait for the feature branch to be merged):
- In GitHub flow, is it OK to base feature branch on another feature branch? β’ Stack Exchange π©βπ»
- Resolving a merge conflict:
- Lazygit if simple enough to chose one side or the other
- VS Code if more complex? Neovim?
- Reverting a merge:
- Deleting merged branches:
- Clean up your Git branches β’ Jamie Tanna π
Committing
- How atomic Git commits dramatically increased my productivity - and will increase yours too β’ Samuel-Zacharie Faure π
Forking
- Configuring a remote repository for a fork β’ GitHub Docs π
You must configure a remote that points to the upstream repository in Git to sync changes you make in a fork with the original repository. This also allows you to sync changes made in the original repository with the fork.
- Git commands to keep a fork up to date β’ Phil Nash π
- Syncing a fork β’ GitHub Docs π
- Clean up a fork and restart it from the upstream β’ Stack Overflow π©βπ»
- Force your forked repo to be the same as upstream β’ Glenn Block π©βπ»
- Syncing your fork to the original repository via the browser β’ Kirstie Jane π©βπ»
- Quick Tip: Sync a Fork with the Original via GitHubβs Web UI β’ Bruno Skvorc
- Creating a pull request from a fork β’ GitHub Docs π
Undoing mistakes
- How to undo (almost) anything with Git β’ GitHub Blog π
- How to remove previously committed files now in
.gitignore
:
Git worktrees
- use via Lazygit?
- use via VS Code?
- use via neovim?
- Git Worktrees and Neovim: A Match Made in Coding Heaven β’ DevOps Toolbox πΊ
Inbox
- write about creating a global .gitignore file?
.git-blame-ignore-revs
file:- Ignore commits in the blame view β’ GitHub Docs π
- Git is my buddy: Effective Git as a solo developer β’ Mikkel Paulson π
- How to merge multiple Git repos and keep their commit history β’ Graham F. Scott π
- is a global ignore file a bad practice when collaborating? would it be better not to have it so I/we am/are prompted to ignore those files at the project level?
- prompted by a project that included (didnβt ignore) some source files in a
dist/
directory
- prompted by a project that included (didnβt ignore) some source files in a
- search entire git history for any text with
git log -S <string>
- Search all of Git history for a string - Stack Overflow
- works by searching all diffs that add or remove an instance of that string (i.e. that changed how many references to that string there were)
- use
-G
instead of-S
to simply find all diff lines that match the regexp (regardless of whether the number of instances in the file changed)
- use
- gives a list of commits with diffs that contain the search string
- add
-p
to the command to see the diffs too in aless
pager you can search with/
or page through withctrl-f/b
- Some miscellaneous git facts β’ Julia Evans π