Learn Git Branching
Git aliases and workflow shortcuts
- Many comments share extensive Git aliases for common operations (status, log, rebase, cherry-pick, amend, push, diff, reset, stash).
- Some prefer powerful, multi-command aliases via
!shell invocation in.gitconfig; others rely on shell aliases (zsh, fish) or IDE keybindings. - There is debate about multi-command aliases: some see them as essential; others note portability issues, especially on Windows
cmd. - Several people emphasize aliases to improve commit quality (e.g., forcing manual staging, avoiding
-a, or using amend-only aliases for tiny fixes). - Fuzzy-finder integrations (fzf) and tools like
tig,lazygit, and scripts likefzf-git.share recommended for interactive staging and branch management.
Perceptions of Learn Git Branching and related tools
- The tutorial is widely praised as an excellent, visual way to learn and teach Git, useful both for beginners and experienced users.
- Some report they or colleagues react with “this is cool” but never actually work through it, suggesting a motivation/engagement gap rather than a content problem.
- Other visual resources (e.g., D3-based Git explainers) and terminal UIs (
tig, magit, lazygit) are mentioned as complementary.
Conceptual models: branches, DAGs, refs
- Several comments stress that understanding Git as a directed acyclic graph (DAG) plus refs/pointers makes many operations intuitive.
- There is argument over whether Git “really” has branches or just moving pointers; some find the pointer model clarifying, others think it’s overly reductionist.
- Hooks and trailers are suggested to record branch names and other metadata in commits for easier history inspection.
Rebase vs merge, history cleanliness, and PR practices
- Strong disagreement appears around “proper” workflows:
- One side values clean, rebased histories and well-structured commits, seeing messy branches, “temp/WIP” commits, and frequent merges from main as unprofessional.
- The other side prefers preserving “real” history or doesn’t care about intermediate commits if the final diff is good, often relying on squash merges.
- Some argue rebasing is under-taught and over-feared; others highlight its “footguns” and real-world cases of developers breaking branches.
- There are recurring complaints about large, messy PRs and lack of commit hygiene; some would even use “cleaning up a PR” as an interview filter.
- A tangent debates small vs large PRs and the pain of many dependent PRs, especially with tool limitations.
Git education and everyday practice
- Multiple comments note that formal education rarely teaches Git deeply; many professionals end up cargo-culting commands learned from GUIs or colleagues.
- Some teams actively train new members in rebasing and history cleanup; others accept that many developers treat Git as a glorified “save” button.
Site and UX issues
- Language selection behavior is criticized; users want browser language respected over heuristics. The author clarifies it already uses
navigator.language, not geolocation. - Some users initially cannot type into the tutorial’s terminal until clicking a specific area or refreshing, suggesting a focus/interaction bug.