nowfound

Dev tools · April 27, 2017

Pygit – Just enough git to push itself to GitHub

pygit implements just enough of a Git client (in 500 lines of Python) to create a repo, commit, and push itself to GitHub.

Pygit – Just enough git to push itself to GitHub launched on April 27, 2017 with 208 votes, #138 of 3,007 launches that month and more than 95% of that year's launches. The site was still online in September 2026, 9 years on.

Visit benhoyt.com ↗Alternativestop 5% of April 2017

In plain words

Pygit is a minimal Git client written in 500 lines of Python that implements core functionality to create a repository, stage files, commit changes, and push to GitHub. It is designed for developers interested in understanding how Git works at a fundamental level by leveraging Git's simple object model and file-based storage system. The project demonstrates that essential version control operations can be accomplished with surprisingly little code.

written from the facts on this page · September 2026

From the sources

Summary: Recently I wrote approximately 500 lines of Python code that implements just enough of a Git client to create a repository, add files to the index, commit, and push itself to GitHub. This article gives a bit of background on my hack and walks through the code. Git is known (among other things) for its very simple object model – and for good reason. When learning git I discovered that the local object database is just a bunch of plain files in the .git directory. With the exception of the index ( .git/index ) and pack files (which are kind of optional), the layout and format of these files is very straight-forward. Somewhat inspired by Mary Rose Cook’s similar effort , I wanted to…from benhoyt.com

Does a similar job

all alternatives →
  • Gogit – Just enough Git (in Go) to push itself to GitHub2023 · benhoyt.com · ▲176

    In which I rewrite my toy pygit client in Go to see how suitable Go is for simple scripts.

  • I made a tool that made me faster at Git2018 · github.com · ▲551

    simple terminal UI for git commands. Contribute to jesseduffield/lazygit development by creating an account on GitHub.

  • A simple Go web server with logging, tracing, health check2018 · gist.github.com · ▲318

    GitHub Gist: instantly share code, notes, and snippets.

  • WS
    We scaled Git to support 1 TB repos2022 · xethub.com · ▲279

    I’ve been in the MLOps space for ~10 years, and data is still the hardest unsolved open problem. Code is versioned using Git, data is stored somewhere else, and context often lives in a 3rd location like Slack or GDocs. This is why we built XetHub, a platform that enables teams to treat data like code, using Git. Unlike Git LFS, we don’t just store the files. We use content-defined chunking and Merkle Trees to dedupe against everything in history. This allows small changes in large files to be stored compactly. Read more here:…

  • lazygit2016 · github.com · ▲93

    Command line utility to automate daily git push operations

More dev tools this month

the category →
  • /dev/null▲490

    a social network for devs

    Dev tools · 4d ago · dev-null.sh

  • open-source IDE for thoughtful software design. Contribute to devdotfast/whiteboard development by creating an account on GitHub.

    Dev tools · 28d ago · github.com

  • Contribute to reladraw/reladraw development by creating an account on GitHub.

    Dev tools · 26d ago · github.com

  • OpenBot▲362

    Grok Bot alternative: free, local, open-source, multiplayer

    Dev tools · 24d ago · openbot.run

  • Talanoa▲346

    Hi HN, I’m a fullstack developer, and honestly, I’ve lost count of how many side projects I’ve worked on over the years. But one idea kept coming back to me: a different kind of email client. It first came to me in 2014: “What if we could handle emails more like conversations?” Every year, I’d revisit this concept in my “Build Notes.” Ten years later, no one had built exactly what I had in mind — so I finally decided to do it myself. That’s how Talanoa was born. I wanted something focused on people, not timelines. I was tired of marking messages as unread just to remember to reply later, or…

    Dev tools · 21d ago · talanoa.email

  • Contribute to oosexgang/hackios-xnu-kernel development by creating an account on GitHub.

    Dev tools · 12h ago · github.com

Source: Show HN post ↗

Launched alongside, April 2017

the whole month →
  • AutoDraw▲1,385

    Autocorrect for drawing, by Google

    AI · 2017 · autodraw.com

  • Stripe Atlas▲1,320

    The best way to start an internet business

    Commerce · 2017 · atlas.stripe.com

  • Life & fun · 2017 · jacquesmattheij.com

  • Elon Musk's new company, creating tunnels for traffic

    Growth · 2017 · boringcompany.com

  • A community-powered product search engine

    Life & fun · 2017

  • Lyrebird▲840

    Copy the voice of anyone, using a voice imitation algorithm

    AI · 2017 · descript.com