Git is my buddy: Effective Git as a solo developer

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • diff2html

    Pretty diff to html javascript library (diff2html)

  • Relevant useful tool: diff2html - a CLI that lets you quickly see an HTML output of all uncommitted the changes you've made (or compare against a branch).

    https://diff2html.xyz/

    I have an alias `alias diff='diff2html -s side --ig package-lock.json'` which shows a side-by-side comparison of my changes. Highly recommend!

  • Voxlap

    Making Ken Silverman's "Voxlap" voxel graphics engine run on any platform with SDL.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • git-meta

    Repository for the git-meta project -- build your own monorepo using Git submodules

  • I think it very much depends how you use them. A great option to manage submodules is TwoSigma's "git-meta" https://github.com/twosigma/git-meta.

    There's also just "meta" which is a cleaner way to approach the functionality of submodules https://github.com/mateodelnorte/meta.

  • ohmyzsh

    🙃 A delightful community-driven (with 2,300+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.

  • But otherwise, I don't create branches. My commits are medium sized, one big thing, and to the trunk. After a commit, I git --amend liberally. It's never really clear in my mind when a commit ended and the next one starts. This wouldn't fly in a group.

    The one think I'd recommend is roughly Never Type git. That's overstating, but basically git's command line syntax is just terrible. So I hide it behind shell aliases. I think my one moderate sized git screwup was due to the command line syntax. This guy goes a bit far but you get the idea:

    https://github.com/ohmyzsh/ohmyzsh/wiki/Cheatsheet

    I pull rarely enough that I prefer to type it out.

    Also, configure a good diff tool (although Apple seems to reject kdiff3 for now). And .gitignore goes without saying.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts