CVS🏚️
RCS🏚️
CSSC🏚️
BitKeeper
subversion
Git
- Doc
- Clients
- Servers
- Hook management
- Commit messages
- The stacking workflow
- personal notes
Aegis🏚️
Arch🏚️
monotone🏚️
Perforce
ArX🏚️
CVSNT🏚️
Darcs
mercurial
Dimensions CM
TFS
Pijul
Comparisons: Better SCM↑🏚️
Articles and videos
- The New Breed of Version Control Systems🗑️ by (29 January 2004) ► A short description of the current open source version control systems.
- Comments on Open Source Software / Free Software (OSS/FS) Software Configuration Management (SCM) / Revision-Control Systems by (18 May 2005) ► A good overview of the current source management tools.
- Code Health: Providing Context with Commit Messages and Bug Reports by (11 September 2017) ► The title says it all: writing informative commit comments and bug reports will help the future developers understand the code changes.
- Beyond Git: The other version control systems developers use — Our developer survey found 93% of developers use Git. But what are the other 7% using? by (9 January 2023) ► The current status of version control systems with some information about Subversion, Mercurial, Perforce, and TFVC.
- Pijul: Version-Control Post-Git • Pierre-Étienne Meunier • GOTO 2023↓ by (11 July 2023) ► A list of technical or theoretical details, but there is no real presentation of Pijul use.
- 3 Key Version Control Mistakes (HUGE STEP BACKWARDS) by (26 June 2024) ► Not versioning the definition of the versions of the system components, no versioning control because using low-code or no-code tools, and AI tools not working incrementally.
- Branch management
- Microsoft’s Branching and Merging Guidelines by (23 April 2012) ► Microsoft released a guide on branch management.
- Patterns for Managing Source Code Branches by (28 May 2020) ► A description and analysis of the several ways used to manage source code branches.
- Gitflow
- Gitflow Workflow ► Yet another description of git-flow, this one describes how to use the git-flow toolset.
- A successful Git branching model↑ by (5 March 2020) ► The historical well-known description of git-flow.
- CVS
- Open Source Development with CVS by and (July 2003) ► A free book teaching CVS.
- Subversion
- Single-User Subversion🗑️ by (31 October 2002) ► An introduction to Subversion.
- Using and hacking Subclipse - the Subversion plugin for Eclipse by (30 November 2005) ► The title says it all.
- Installation de Subversion sur Windows by (1 April 2008) ► Installing Subversion, the Windows service, and TortoiseSVN.
- Git
- Git Prune ► Some information about (not) using
git prune. - Git Magic by (August 2007) ► A Git recipe book.
- Git by (12 October 2007) ► A presentation of Git, but this goes too fast, tries to say too many things in too little time.
- YUI Theater — Tom Preston-Werner, Chris Wanstrath and Scott Chacon: "Git, GitHub and Social Coding"🗑️ by , , and (2 July 2009) ► A presentation of Git and GitHub: how to organise the repositories, some tips and tricks…
- Git changes the game of distributed Web development — Modern version control systems provide powerful support for collaboration🗑️ by (25 August 2009) ► A (too) short introduction to Git.
- Mind the End of Your Line by (1 March 2012) ► A description of Git mechanisms to handle newlines.
- Introducing Git Version Control into Your Team🗑️ by (17 January 2013) ► Yet another introduction to Git. This one is rather good. It also gives a few tips for those working with TFS and wanting to use Git.
- GIT-SVN comment survivre dans un environnement hostile by (16 July 2015) ► A presentation of
git svnto synchronise a Subversion repository and a Git repository. - A Better Git Blame🚫 by (7 February 2016) ► Using
git log -p -M --follow --stat -- fileto find who is the author of some code. - Screencast : trouvez un commit avec git-bisect🚫 by (5 April 2016) ► The title says it all.
- Clean GIT history — a Step by Step Guide by (12 June 2018) ► Some advice to have a cleaner Git history, but the description could be clearer.
- Supercharging the Git Commit Graph by (25 June 2018) ► Microsoft contributed Commit-Graph that improves performance of some commands on large repositories.
- ↪Supercharging the Git Commit Graph II: File Format by (2 July 2018) ► A description of the structure of Commit-Graph files and of some small performance improvements.
- ↪Supercharging the Git Commit Graph III: Generations and Graph Algorithms by (9 July 2018) ► How generation numbers can be used to optimise the use of the Commit-Graph.
- ↪Supercharging the Git Commit Graph IV: Bloom Filters by (16 July 2018) ► A description of Bloom filters and how they can accelerate the extraction of the list of commits impacting a file.
- Git MERGE vs REBASE by (6 September 2018) ► A basic description of the difference between
mergeandrebase. - Git power tools for daily use by (8 November 2018) ► presents some of his Git scripts.
- 🌳🚀 CS Visualized: Useful Git Commands by (1 April 2020) ► Visualisations of some Git basic commands.
- 3 Ways to Fix Git Clone "Filename too long" Error in Windows [Fixed] by (6 April 2020) ► The title says it all.
- 15 Git tips to improve your workflow by (7 April 2020) ► The title says it all.
- Git Worktrees: The Best Git Feature You’ve Never Heard Of by (28 April 2020) ► A short presentation of worktrees and their advantages.
- GitHub vs Bitbucket vs GitLab : une bataille épique pour l’esprit de développeur↓ by (23 September 2020) ► An unclear comparison of the three tools.
- Get up to speed with partial clone and shallow clone↑ by (21 December 2020) ► A description of blobless clones, treeless clones, shallow clones, and when to use them.
- Git Maintenance by (20 March 2021) ► A presentation of
git maintenance. - A look under the hood: how branches work in Git — Git branches allow you to keep different versions of your code cleanly separated. Here's a look at how they work and why you should know about them.↓ by (5 April 2021) ► This article is strange: on one side, it describes the basics of why branches are useful; on the other side, it gives some technical details of how Git implements branches; but it does not explain the Git commands used to manage branches.
- Git Force vs Force with Lease — And When to Use Them by (12 August 2021) ► The title says it all.
- 13 Advanced (but useful) Git Techniques and Shortcuts by (7 September 2021) ► Some not so-well-known Git commands.
- 10 Must Know Git Commands That Almost Nobody Knows by (19 October 2021) ► The title is misleading, the described commands are rather well-known. Anyway, it is true that it is worthwhile to know them.
- Curly Braces #1: Java and a project monorepo — In his debut Java Magazine column, Eric Bruno explores the benefits of keeping all your project elements in a single Git repository.🗑️ by (21 January 2022) ► The pros and cons to use a monorepo and how to structure the POM files in this case.
- Protect secrets in Git with the clean/smudge filter by (2 February 2022) ► How to define a clean/smudge filter in Git config.
- Inside the Hidden Git Folder - Computerphile by (11 February 2022) ► A basic description of the
.gitfolder. - ↪Git Version Control _final_new_final.new - Computerphile↓ by (25 February 2022) ► A much too simplified description of tags and branches.
- ↪Teamwork & Git - Computerphile↓ by (25 March 2022) ► A quick description of the features of Git and GitHub/GitLab to manage teamwork.
- Improve Git monorepo performance with a file system monitor — Monorepo performance can suffer due to the sheer number of files in your working directory. Git’s new builtin file system monitor makes it easy to speed up monorepo performance. by (29 June 2022) ► A description of the performance improvements enabled by Git’s FSMonitor.
- Write Better Commits, Build Better Projects — High-quality Git commits are the key to a maintainable and collaborative open- or closed-source project. Learn strategies to improve and use commits to streamline your development process. by (30 June 2022) ► suggests rewriting the Git history to simplify code reviews and later analysis. But doing this as far as in her example is unlikely to be worthwhile.
- Git’s database internals I: packed object store — This blog series will examine Git’s internals to help make your engineering system more efficient. Part I discusses how Git stores its data in packfiles using custom compression techniques.↑ by (29 August 2022) ► A description of the object store, the reference store, and the packfiles.
- ↪Git’s database internals II: commit history queries — This post explores Git commit history as a database where ‘git log’ is the query language. Learn about Git’s custom query index – the commit-graph file – and how to make sure it’s enabled in your repositories.↑ by (30 August 2022) ► A description of the commit-graph and generation numbers, and how they are used. ( already explained this in some previous articles.)
- ↪Git’s database internals III: file history queries — Git’s file history queries use specialized algorithms that are tailored to common developer behavior. Level up your history spelunking skills by learning how different history modes behave and which ones to use when you need them.↑ by (31 August 2022) ► A description of some
git logoptions:--show-pulls,--full-history,--full-history, and-L. - ↪Git’s database internals IV: distributed synchronization — We’re examining Git’s internals to help make your engineering system more efficient. This post views Git as a distributed database and looks into its synchronization techniques, specifically ‘git fetch’ and ‘git push’.↑ by (1 September 2022) ► The algorithms used by
git fetchandgit push, including the reachability bitmaps. - ↪Git’s database internals V: scalability — This fifth and final part of our blog series exploring Git’s internals shows several strategies for scaling your Git repositories that match related database sharding techniques.↑ by (2 September 2022) ► Multi-repos, submodules, using an archived repository possibly configuring it as a Git alternate and as the commit root of the new repository, and blobless clones.
- Scaling Git’s garbage collection — A tour of recent work to re-engineer Git’s garbage collection process to scale to our largest and most active repositories. by (13 September 2022) ► A detailed description of the management of reachable and unreachable objects, and of cruft packs.
- Search All of Your Git History for Code and Commits with 2 Commands by (11 October 2022) ► Some tips to use
git logto search all commits containing some text (either in the changed code or in the commit comment). - The Story of Scalar — New to Git v2.38, Scalar is a built-in repository manager for large repos. Here, we’ll tell the story of how Scalar went from a rough VFS for Git successor to a fully-integrated Git tool, with all of the engineering lessons learned in the process. by and (13 October 2022) ► The subtitle says it all.
- Git: Rebase stacked branches with --update-refs by (15 October 2022) ► How to use
git rebase --update-refsto rebase stacked branches. - How to use Git rebase in real life by (8 November 2022) ► How to use
fixup. - Use Git tactically — How you can use micro-commits to effectively apply the Strangler Fig pattern. by (19 December 2022) ► The subtitle is misleading, this is not about the Strangler Fig pattern, but some advice for using micro-commits. The author should have used a more convincing example.
- Git security vulnerabilities announced — Git users are encouraged to upgrade to the latest version, especially if they use `git archive`, work in untrusted repositories, or use Git GUI on Windows. by (17 January 2023) ► The description of three CVEs.
- ↪Git security audit: Inside the hunt for - and discovery of - CVEs by (24 January 2023) ► Some little information about the finding of one of the CVEs.
- Git security vulnerabilities announced — Git users are encouraged to upgrade to the latest version, especially if they use `git apply` or `git clone` against untrusted patches or repositories. by (14 February 2023) ► Two new CVEs.
- Savez-vous vraiment comment fonctionne git ? (Sébastien LECACHEUR)↑ by (13 April 2023) ► A good presentation of Git internals.
- Git security vulnerabilities announced — A new set of Git releases were published to address a variety of security vulnerabilities. All users are encouraged to upgrade. Take a look at GitHub’s view of the latest round of releases. by (25 April 2023) ► Five new CVE, three being specific to Windows.
- Organizing multiple Git identities by (13 October 2023) ► How to configure different user data for different Git repositories.
- Git reflog : ma commande (sous-côtée) préférée de Git par Eve Julliard by (12 December 2023) ► A description of the
git reflogcommand. - So You Think You Know Git - FOSDEM 2024 by (4 February 2024) ► Some little known features, new features, large repositories, and a few new GitHub features.
- ↪So You Think You Know Git Part 2 - DevWorld 2024 by (20 March 2024) ► Some other features:
git switch,git restore, hooks, attributes, rebasing stacked branches, worktrees… - How to Fix Git “Refusing to Merge Unrelated Histories” by (6 February 2024) ► The solution is to run
git pull origin main --allow-unrelated-histories. - Configuring git Credentials by (19 March 2024) ► The basics of Git credentials.
- Radicle: peer-to-peer collaboration with Git by (29 March 2024) ► Radicle is a peer to peer network of Git servers, but you need to run a node locally to be able to use it.
- Never* use git pull by (6 May 2024) ► The guy advises to use
git pull --rebaserather thangit pull. - Securing Git: Addressing 5 new vulnerabilities — Git is releasing several new versions to address five CVEs. Upgrading to the latest Git version is essential to protect against these vulnerabilities. by (14 May 2024) ► Some fixes of vulnerabilities related to cloning repositories.
- A beginner's guide to the Git reftable format by (30 May 2024) ► A detailed description of reftables.
- Developer Git Commit Hygiene — This article will demonstrate good developer Git commit hygiene as well as educate the developer audience to use short and frequent commits. by and (20 June 2024) ► A basic list of Git good practices.
- I was wrong about git stash... by (15 July 2024) ► The guy advises to use worktrees.
- Why is Git Autocorrect too fast for Formula One drivers? — Why does Git's autocorrect wait 0.1s before executing a mistyped command? Let's dig in by (13 January 2025) ► The strange bahaviour of
help.autocorrect. - Git security vulnerabilities announced — A new set of Git releases were published to address a variety of security vulnerabilities. All users are encouraged to upgrade. Take a look at GitHub’s view of the latest round of releases. by (14 January 2025) ► Two vulnerabilities related to crafted URLs, one when asking for credentials, the other when passing information to the credential manager, have been fixed.
- How Core Git Developers Configure Git — What `git config` settings should be defaults by now? Here are some settings that even the core developers change. by (22 February 2025) ► Some useful configuration settings.
- Celebrating Git's 20th anniversary with creator Linus Torvalds by (7 April 2025) ► An "interview" of about the birth of Git.
- 20 years of Git. Still weird, still wonderful. — Twenty years ago, Git was born. How did this unlikely "information manager" take over the world? by (8 April 2025) ► Some anecdotes about the early days of Git.
- Two decades of Git: A conversation with creator Linus Torvalds by and (9 April 2025) ► The beginning of Git told by .
- Git security vulnerabilities announced — Today, the Git project released new versions to address seven security vulnerabilities that affect all prior versions of Git. by (8 July 2025) ► The subtitle says it all.
- A data model for Git (and other docs updates) by (8 January 2026) ► explains how she improved Git documentation.
- Devs can no longer avoid learning Git worktree by (4 February 2026) ► An introduction to worktrees for people using AI agents.
- A couple of git nits — A small rant on git papercuts, and why they are like that. by (16 March 2026) ► complains about some idiosyncrasies of Git:
git cat-file -p,git log --oneline --graph --decorate --all, andgit log -S / -G. As he explains, Git is old and used by everyone, so he suggests to move to GitButler or Jujutsu. - Taming Git complexity with Rust and Gitoxide - FOSDEM 2026 by (16 April 2026) ► A very short introduction to the Gitoxide library.
- History
- 2.6
- Git 2.6 Brings Many New Features and Improvements by (8 October 2015) ► A description of the new release.
- 2.25
- Git 2.25 Improves Support for Sparse Checkout by (15 January 2020) ► The
git sparse-checkoutand "code" mode have been added to manage partial clones.
- Git 2.25 Improves Support for Sparse Checkout by (15 January 2020) ► The
- 2.31
- Highlights from Git 2.31 by (15 March 2021) ► Background maintenance has been added with
git maintenance, on-disk reverse indexes are now supported (disabled by default), and some small improvements.
- Highlights from Git 2.31 by (15 March 2021) ► Background maintenance has been added with
- 2.34
- Highlights from Git 2.34 — To celebrate this most recent release, here’s GitHub’s look at some of the most interesting features and changes introduced since last time. by (15 November 2021) ► The index now understands sparse checkouts, the bitmat format now supports multi-pack indexes,
ortbecomes the default merge strategy.
- Highlights from Git 2.34 — To celebrate this most recent release, here’s GitHub’s look at some of the most interesting features and changes introduced since last time. by (15 November 2021) ► The index now understands sparse checkouts, the bitmat format now supports multi-pack indexes,
- 2.35
- Highlights from Git 2.35 — The open source Git project just released Git 2.35. Here’s GitHub’s look at some of the most interesting features and changes introduced since last time. by (24 January 2022) ►
git stash --staged, new formats forgit describe, SSH signing is improved, a newzdiff3mode for reporting merge conflicts, some performance improvements ingit diff…
- Highlights from Git 2.35 — The open source Git project just released Git 2.35. Here’s GitHub’s look at some of the most interesting features and changes introduced since last time. by (24 January 2022) ►
- 2.37
- Highlights from Git 2.37 — The open source Git project just released Git 2.37. Take a look at some of our highlights from the latest release. by (27 June 2022) ► Cruft packs have been added to better manage unreachable objects, a filesystem monitor is built in for Windows and macOS, the sparse index is now fully integrated…
- 2.38
- Highlights from Git 2.38 — Another new release of Git is here! Take a look at some of our highlights on what’s new in Git 2.38. by (3 October 2022) ► Scalar is now included in the release,
git rebasecan now update dependant branches,git rmsupports spare index,git merge-treesupports the ort merge strategy…
- Highlights from Git 2.38 — Another new release of Git is here! Take a look at some of our highlights on what’s new in Git 2.38. by (3 October 2022) ► Scalar is now included in the release,
- 2.39
- Highlights from Git 2.39 — Another new release of Git is here to end the year! Take a look at some of our highlights on what’s new in Git 2.39. by (12 December 2022) ► Improved grouping in
git shortlog,git repack --expire-tocan be used to generate a backup of the removed objects,git grep --cachedimproved performance with sparse index, and improvedgit pushperformance when some refs are hidden by the server.
- Highlights from Git 2.39 — Another new release of Git is here to end the year! Take a look at some of our highlights on what’s new in Git 2.39. by (12 December 2022) ► Improved grouping in
- 2.40
- Highlights from Git 2.40 — The first Git release of the year is here! Take a look at some of our highlights on what’s new in Git 2.40. by (13 March 2023) ► now supports Emacs,
git cat-filehas been fixed to compute correct sizes when used with amailmap,git check-attrcan be used on a bare repository…
- Highlights from Git 2.40 — The first Git release of the year is here! Take a look at some of our highlights on what’s new in Git 2.40. by (13 March 2023) ► now supports Emacs,
- 2.41
- Highlights from Git 2.41 — The open-source Git project just released Git 2.41. Take a look at our highlights on what’s new in Git 2.41. by (1 June 2023) ► Cruft packs and reverse indexes are now generated by default, credential helpers support
WWW-Authenticate headers,git fetchhas a new--porcelainflag,git fsckperforms more controls… - Git 2.41 release - Here are five of our contributions in detail by (20 June 2023) ► The improvements and fixes that GitLab has contributed in Git 2.41.
- Highlights from Git 2.41 — The open-source Git project just released Git 2.41. Take a look at our highlights on what’s new in Git 2.41. by (1 June 2023) ► Cruft packs and reverse indexes are now generated by default, credential helpers support
- 2.42
- Highlights from Git 2.42 — Another new release of Git is here! Take a look at some of our highlights on what’s new in Git 2.42. by (21 August 2023) ► A new variant of the bitmap traversal algorithm, optimised scan of the
packed-refsfile, thegc.recentObjectsHookconfiguration allows to define hooks to avoid some files to be pruned… - Git 2.42 release: Here are four of our contributions in detail by (12 October 2023) ► Adding
-includeand-excludeoptions togit pack-refs, adding a-Zoption togit cat-file, allowing to provide pseudo options instdintogit rev-list --stdin, and some code cleanup.
- Highlights from Git 2.42 — Another new release of Git is here! Take a look at some of our highlights on what’s new in Git 2.42. by (21 August 2023) ► A new variant of the bitmap traversal algorithm, optimised scan of the
- 2.43
- Highlights from Git 2.43 — The last Git release of 2023 is here! Take a look at some of our highlights on what’s new in Git 2.43. by (20 November 2023) ► Multiple cruft packs,
git repacknow supports--filterand--filter-toto remove some blobs from the workspace, improved message for revert of revert,git loghas now a%(decorate)placeholder… - The contributions we made to the Git 2.43 release by (11 January 2024) ►
git repack --filter,git show --exists,git rev-list --missingnow handles missing commit objects, and reading attributes fromHEADby default.
- Highlights from Git 2.43 — The last Git release of 2023 is here! Take a look at some of our highlights on what’s new in Git 2.43. by (20 November 2023) ► Multiple cruft packs,
- 2.44
- Highlights from Git 2.44 — The first Git release of 2024 is here! Take a look at some of our highlights on what’s new in Git 2.44. by (23 February 2024) ► Reusing objects across multiple packs, a new
git replaywhich is a more powerful and faster alternative ofgit rebase,--autosquashfor non-interactive rebase… - GitLab's contributions to Git 2.44.0 by (26 February 2024) ►
git replay, addition then removal of the detection of commits that exist in the commit-graph but no longer in the object database, preparation of a future new format to store refs, and integration of the definition of the GitLab CI/CD pipeline in Git repository.
- Highlights from Git 2.44 — The first Git release of 2024 is here! Take a look at some of our highlights on what’s new in Git 2.44. by (23 February 2024) ► Reusing objects across multiple packs, a new
- 2.45
- Highlights from Git 2.45 — Git 2.45 is here with experimental support for reftables, and SHA-256 interoperability. Get our take on the latest here. by (29 April 2024) ► Reftable storage, first experiment of SHA-1/SHA-256 interoperability,
git rev-list --missing=printnow supports missing query tips,git reflog listcan be use to how which references have a reflog even when using reftables,git config --commentcan be used to comment a line,git cherry-picknow supports--empty…
- Highlights from Git 2.45 — Git 2.45 is here with experimental support for reftables, and SHA-256 interoperability. Get our take on the latest here. by (29 April 2024) ► Reftable storage, first experiment of SHA-1/SHA-256 interoperability,
- 2.46
- What’s new in Git 2.46.0? by (29 July 2024) ►
git refs migratecan be used to convert a repo to reftables,git update-refhas new instructions to support symrefs,git configsupports also the common command syntax, more unit tests, and some bug fixes. - Highlights from Git 2.46 — Git 2.46 is here with new features like pseudo-merge bitmaps, more capable credential helpers, and a new git config command. Check out our coverage on some of the highlights here. by (29 July 2024) ► Pseudo-merge bitmaps as a performance improvement over reachability bitmaps,
git config’s new syntax, improved credential helper,git refs migrate,--no-adviceto disable all advice messages, and unit tests.
- What’s new in Git 2.46.0? by (29 July 2024) ►
- 2.47
- What's new in Git 2.47.0? by (7 October 2024) ► Global configuration of the reftable format and the object format,
git refs verify, a bug fix in the reftable compaction,git maintenance --detach, fixed memory leaks, and the ongoing removal of thethe_repositoryglobal variable. - Highlights from Git 2.47 — Git 2.47 is here, with features like incremental multi-pack indexes and more. Check out our coverage of some of the highlights here. by (7 October 2024) ► Incremental multi-pack indexes are in experimental phase, an unclear description of
for-each-ref --format="%(is-base:…)", a new Platform Support Policy, the continuous effort on unit tests / memory leaks / code cleanup, …
- What's new in Git 2.47.0? by (7 October 2024) ► Global configuration of the reftable format and the object format,
- 2.48
- What’s new in Git 2.48.0? by (10 January 2025) ► Git can now be built using Meson, no anymore memory leaks when running the tests, bundle URI checks, more reference checks, reftable performance improvement, reflogs partially support reftables, and "ref-filter" subsystem performance improvement.
- Highlights from Git 2.48 — The open source Git project just released Git 2.48. Here is GitHub’s look at some of the most interesting features and changes introduced since last time. by (10 January 2025) ► SHA-1, when used only as a checksum with no security impact, will now not perform collision detection.
git range-diffnow supports the--remerge-diffoption. There is no more memory leaks when running the tests. Git can now be built using Meson…
- 2.49
- Highlights from Git 2.49 — The open source Git project just released Git 2.49. Here is GitHub’s look at some of the most interesting features and changes introduced since last time. by (14 March 2025) ► A new name-hash implementation, the new
git backfillcommand downloads the missing blobs of a partial clone in batches, Git can now be built withzlib-ng, Rust wrappers,git gcnow supports--expire-to,git clonenow supports--revision… - What's new in Git 2.49.0? by (14 March 2025) ► More or less the same as the GitHub’s blog entry.
- Highlights from Git 2.49 — The open source Git project just released Git 2.49. Here is GitHub’s look at some of the most interesting features and changes introduced since last time. by (14 March 2025) ► A new name-hash implementation, the new
- 2.50
- Highlights from Git 2.50 — The open source Git project just released Git 2.50. Here is GitHub’s look at some of the most interesting features and changes introduced since last time. by (16 June 2025) ► Some improvements of multiple cruft packs, multi-pack reachability bitmaps, removal of the
recursivemerge,git cat-filenow supports filtering, removal ofgit cat-file --allow-unknown-type, improvements ofgit maintenance… - What’s new in Git 2.50.0? by (16 June 2025) ► The
git diff-pairscommand allows to split the computation of a large diff into several chunks,git update-refnow supports a--batch-updatesflag to reject the invalid reference updates and apply the correct ones,git cat-filenow supports--filter, a quadratic accident has been fixed ingit bundle, andgit clone --bundle-urinow handles references other thanrefs/heads/*.
- Highlights from Git 2.50 — The open source Git project just released Git 2.50. Here is GitHub’s look at some of the most interesting features and changes introduced since last time. by (16 June 2025) ► Some improvements of multiple cruft packs, multi-pack reachability bitmaps, removal of the
- 2.51
- Highlights from Git 2.51 — The open source Git project just released Git 2.51. Here is GitHub’s look at some of the most interesting features and changes introduced since last time. by (18 August 2025) ► Non-cruft packs are now closed under reachability, smaller packs by using an improved walk path, stashes can now be exported/imported, improved
git cat-file,git whatchangedis deprecated,git switchandgit restoreare not experimental anymore… - What’s new in Git 2.51.0? by (18 August 2025) ►
git-pushandgit-fetchare faster by using batched updates,git for-each-refnow supports pagination, and some other changes listed in the previous article.
- Highlights from Git 2.51 — The open source Git project just released Git 2.51. Here is GitHub’s look at some of the most interesting features and changes introduced since last time. by (18 August 2025) ► Non-cruft packs are now closed under reachability, smaller packs by using an improved walk path, stashes can now be exported/imported, improved
- 2.52
- What’s new in Git 2.52.0? by , , and (17 November 2025) ►
git last-modifiedlists the last commit on each file in a repo,git fast-exportandgit fast-exportbetter support signed commits,git maintenancesupports geometric repacking,git repo structuredisplays some metrics about the repo,git repo infodisplays some machine-readable configuration parameters,git refsis a new command regrouping ref-related actions… - Highlights from Git 2.52 — The open source Git project just released Git 2.52. Here is GitHub’s look at some of the most interesting features and changes introduced since last time. by (17 November 2025) ► The same, plus some information about future Git 3.0 changes, some performance improvements, and
git sparse-checkout cleanto remove files outside of the sparse-checkout definition.
- What’s new in Git 2.52.0? by , , and (17 November 2025) ►
- 2.53
- What’s new in Git 2.53.0? by (2 February 2026) ► Geometric repacking now works with partial clones.
git fast-importcan strip only invalid signatures when importing a repository whose history has been partially rewritten.git repo structurereports the size of reachable objects.
- What’s new in Git 2.53.0? by (2 February 2026) ► Geometric repacking now works with partial clones.
- 2.54
- Highlights from Git 2.54 — The open source Git project just released Git 2.54. Here is GitHub’s look at some of the most interesting features and changes introduced since last time. by (20 April 2026) ► The introduction of the
git historycommand which only supports changing commit messages and splitting commits for the time being, setting hooks by configuration, geometric repacking is now the default, improvements ofgit add –p,git replay,git log –L,git blame… and many other things. - What’s new in Git 2.54.0? by (20 April 2026) ► Pluggable object database, new
git historycommand,git repo structureimprovement, and geometric compaction being the default.
- Highlights from Git 2.54 — The open source Git project just released Git 2.54. Here is GitHub’s look at some of the most interesting features and changes introduced since last time. by (20 April 2026) ► The introduction of the
- 2.6
- Bits and Booze
- BitKeeper | Ep. 4 Bits and Booze by and (30 October 2024) ► A presentation of BitKeeper, the ancestor of Git.
- Interactive Rebase | Ep. 6 Bits and Booze by and (13 December 2024) ► A complete description of interactive rebase.
- Git Notes | Ep. 7 Bits and Booze by and (28 January 2025) ► A short presentation of
git notes. - Git Interview Part 1: Easy | Ep. 8 Bits and Booze by and (19 February 2025) ► These questions are easy if you have a medium knowledge of Git.
- ↪Git Interview Part 2: Hard | Ep. 9 Bits and Booze by and (26 February 2025) ► These questions are about much less common workflows and the answers are not clear.
- Building a Simple App in Tauri | Ep. 10 Bits and Booze by and (10 March 2025) ► A presentation of Tauri, a framework to create cross-platform desktop and mobile applications.
- Stack Overflow Git Questions Part 1 | Ep. 12 Bits and Booze by and (21 March 2025) ► The title says it all.
- Does Git From 2005 Still Work? | Ep. 15 Bits and Booze by and (7 April 2025) ► Playing with the first Git commit twenty years later.
- Git Mailing Lists Part 1 | Ep. 16 Bits and Booze by and (28 April 2025) ► details his email-based process for patch proposal and review (for Git).
- ↪Git Mailing Lists Part 2 | Ep. 17 Bits and Booze by and (2 May 2025) ► The continuation of the previous video.
- Git Worktrees | Ep. 20 Bits and Booze by and (13 June 2025) ► Git Worktrees and a comparison with local clones and with GitButler.
- Jujutsu Megamerges & Git History Preview | Ep. 23 Bits and Booze by (4 December 2025) ► A presentation of Jujutsu merges and of the future
git historycommand.
- GitButler
- GitButler Product Demo February 2024 by (6 February 2024) ► A short and rather impressive demo of GitButler.
- New GitButler Release - Power rebasing, infinite undo and more! by (10 June 2024) ► Simple rebasing and project history.
- Stacked Branches Demo by (4 December 2024) ► Stacked branches allows the developer to build on top of changes which are not merged yet.
- Fearless Rebase Demo by (4 December 2024) ► GitButler does not force you to manage merge conflicts just after a rebase.
- GitButler Product Overview by and (4 December 2024) ► An overview of GitButler features.
- Parallel Claude Code Sessions with GitButler by (22 July 2025) ► GitButler can integrate Claude Code and can handle several Claude sessions at the same time.
- ↪Managing Multiple Claude Code Sessions Without Worktrees — With Claude Code's new lifecycle hooks, GitButler auto-sorts simultaneous AI coding into separate branches. Write three features, get three clean branches — no conflicts, no worktrees, no hassle. by (22 July 2025) ► The corresponding blog.
- GitButler Product Demo Overview (Summer 2025) by (8 August 2025) ► An updated product demonstration.
- ↪Setting Up GitButler with Agent Tooling by (8 August 2025) ► A demo of using Claude Code hooks or GitButler MCP Server to get GitButler to create branches and commits while the AI is modifying the code.
- Claude Code Gets a Native UI Inside GitButler by (11 September 2025) ► GitButler has now a tab from which you can drive Claude Code.
- ↪GitButler's Claude Code tab — GitButler's new Agents Tab brings Claude Code directly into your Git workflow, giving each branch its own independent development assistant. by (11 September 2025) ► The corresponding blog.
- Using Cursor Hooks for automatic version control by (29 September 2025) ► Using Cursor hooks to have GitButler managing branches and commits for the code generated by Cursor.
- Butler Flow: shipping code faster (but less like Alfred, more like CI on steroids) — Dig into what Butler Flow is, why it exists, how it works, and how adopting it can help modern development teams solve one of the perpetual pains in software by (24 October 2025) ► Yet another presentation of GitButler particularities; mostly the virtual branches.
- ↪Butler Flow: shipping code faster (but less like Alfred, more like CI on steroids) - Part 2 — Dig deeper into what Butler Flow is, using Butler Flow day-to-day and best practices. by (31 October 2025) ► Some additional details.
- ↪Butler Flow: shipping code faster (but less like Alfred, more like CI on steroids) - Part 3 — In Part 3, we take a look at some deep examples of where Butler Flow comes in handy. by (4 November 2025) ► Some examples of situations where GitButler is useful.
- Use GitButler for your Gerrit workflow — GitButler now has native Gerrit Mode support. Enable it with one config setting and get automatic Change-Id injection, smart push behavior, and linked change URLs. by (10 November 2025) ► The subtitle says it all.
- Gerrit Mode by (14 November 2025) ► A demo of the Gerrit integration.
- Advent of Code! — GitButler is excited to officially participate in this year's Advent of Code! Join our team as we tackle 25 days of clever programming puzzles and showcase how GitButler makes solving daily challenges smoother. by (26 November 2025) ► suggests using GitButler to help managing the code experimentations when trying to solve the Advent puzzles.
- Using GitButler With Multiple GitHub Accounts — Working across multiple GitHub accounts can get messy fast. GitButler removes a lot of that friction with built-in GitHub integration. by (15 December 2025) ► GitButler supports having several account either on github.com or on a GitHub Enterprise server.
- Using the GitButler MCP Server to Build Better AI-Driven Git Workflows — By exposing GitButler functionality through the Model Context Protocol, the MCP server allows AI tools to interact directly with your Git workflow. by (30 December 2025) ► GitButler now integrates a MCP server.
- Getting Started With GitButler Agents — GitButler built a new way to integrate AI-powered code generation directly into your version control workflow. by (9 January 2026) ► This claim that GitButler facilitates managing code experiments using AI misses technical details.
- But Head: Crafting a Custom Font — In search of a distinctive typographic identity for GitButler, we created 'But Head,' a custom header font that blends the technical precision of code with the elegance of magazine typography. by (21 January 2026) ► GitButler created their own font.
- Simplifying Git by Using GitButler — Git is great - and has been for twenty years. But in that time, how many of us have advanced our git skills? Most of us know about five or six commands: clone, status, push/pull, add, commit, branch, and checkout. by (22 February 2026) ► This article explains that GitButler is a way to use and understand more easily complex Git features, but there is nothing new here, this is just marketing.
- GitButler CLI - Stacking Branches by (11 March 2026) ► How to manage stacked branches using GitButler CLI.
- Announcing the GitButler CLI for Linux — In early February, we announced But, the GitButler CLI. The announcement had one glaring flaw: Linux was never mentioned. Not. Even. Once. We're rectifying that now, because But loves Linux, and Linux will come to love But. by (20 March 2026) ► The title says it all.
- We’ve raised $17M to build what comes after Git — GitButler has raised a Series A round to accelerate developing the infrastructure for how software gets built next by (8 April 2026) ► ’s ambition is to make coding really a social activity.
- Agent-safe Git with GitButler — How to let coding agents work without wrecking your branches: the real fear is not the code, it’s the Git mess, and the fix is a workflow built for safe review, rollback, and clear task boundaries. by (10 April 2026) ► explains that Git discipline is required when working with AI agents. Of course, GitButler can help maintaining this discipline.
- Comparing GitButler and vanilla Git
- Uncommitting in Git and GitButler by (2 September 2025) ► How to uncommit (while keeping the changes in the workspace) a previous commit, which may not be the last one, using GitButler or using Git.
- Editing Commits - No longer a Pain in the Git by (18 September 2025) ► How to amend commits using GitButler or vanilla Git (using
git commit --fixup). - Splitting Git Commits (the easy way) by (26 September 2025) ► The same with splitting commits.
- Squashing Git Commits together by (29 September 2025) ► The same with squashing commits.
- Stacking Branches with Git and GitButler by (28 October 2025) ► The same for stacked branches.
- History
- GitButler 0.15 - "Quirky Quinceañera" — GitButler 0.15 is out, featuring a brand new user interface, stability improvements, line based commits and more! by (2 July 2025) ► The announcement of 0.15.
- GitButler 0.16 - "Sweet Sixteen" — GitButler 0.16 is out, featuring our new Agents Tab, AI tool integrations, rules, splitting and more! by (12 September 2025) ► The announcement of 0.16.
- GitButler 0.19 - "Commander Keen" — GitButler 0.19 is out, now shipping with a CLI, improved diffing, improved agentic help and more! by (5 February 2026) ► Some UI changes and official preview of a CLI.
- ↪Introducing the GitButler CLI — Now in technical preview, the new GitButler CLI brings all the power of GitButler to your command line by (5 February 2026) ► details the CLI features.
- ↪Intro to the GitButler CLI by (5 February 2026) ► A demo of the CLI.
- Jujutsu
- Jujutsu | Ep. 5 Bits and Booze by and (14 November 2024) ► An introduction to Jujutsu.
- Git Prune ► Some information about (not) using
- Mercurial
- Google I/O 2009 - Mercurial on BigTable by (28 May 2009) ► A description on the Mercurial implementation done on top of Google’s Bigtable.
- Team Foundation Server
- diff/merge configuration in Team Foundation - common Command and Argument values↑ by (20 February 2006) ► How to configure diff and merge tools in Visual Studio for Team Foundation Server.
- Cloaking in TFS🚫 by (2 October 2008) ► The title says it all.
- Introducing Microsoft Visual Studio Team Foundation Server 2010, Part I🚫 by (7 February 2011) ► An overview of TFS.
- Benefiting from Team Foundation Server Work Items🚫 by (14 February 2011) ► What are Work Items and how to use them.
- Unit and Load Testing With Team Foundation Server 2010🚫 by (28 February 2011) ► Running unit tests, Web tests, and load tests in TFS.
- TFS 2010 Scrum - Relation between PBIs, Tasks, Bugs and Impediments by (4 May 2011) ► The title says it all.
- Microsoft announces cloud building with TFS, Feature Packs for Visual Studio — Microsoft has announced a new cloud-building service for its Team Foundation … by (28 March 2012) ► The title says it all.
- Branching and Merging Visualization with VS2012 & TFS2012 by (12 September 2012) ► How to merge a changeset from one branch to another one.
- Exploratory Testing in TFS 2012 — Learn how Visual Studio 2012 makes exploratory testing quick and easy. by (27 November 2012) ► The title says it all.
- Teams without areas using a team field in TFS🚫 by (18 December 2012) ► The title says it all.
- Work Item Tagging In TFS — Work item tagging allows you to add searchable "keywords" to individual work items in TFS. by (1 April 2013) ► Visual Studio 2012 Update 2’s CTP allows to add tags to Work Items and to filter on them.
- Kanban and Team Foundation Server 2012 by (1 June 2013) ► A very short presentation on using TFS for Kanban.