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 like fzf-git.sh are 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.