Ken Muse
Speed Up Git Clones With Local References
Managing a cluster of machines that each need to clone a large repository? Wondering how you can make it faster to clone a Git repo on the other side of the world? In this post, you’ll learn how Git’s reference option can dramatically reduce clone times and bandwidth usage. You’ll also learn how Git handles missing objects when your reference is out of date.

Read this article

Using Git Worktrees for Concurrent Development
Ever found yourself stuck mid-feature when a production bug demands immediate attention? What about when a colleague asks if you can take a quick look at some code? We’ve all been there, trying to safely commit incomplete work or juggling stashes so we can switch between Git branches. What if I told you Git has had a solution for over a decade (and that VS Code just added support)? Learn how Git worktrees can reduce your friction!

Read this article

How to Dynamically Authenticate With Git
Need to authenticate with different Git repositories using various credentials? This post explores how to dynamically authenticate with Git using credential helpers, environment variables, and secret management systems.

Read this article

How Does Git Authentication Work?
Ever wondered how Git actually authenticates with remote repositories? Ever needed to configure different credentials to access different repositories? This article dives into the inner workings of Git authentication, exploring the role of credential helpers, how they are implemented, and how to customize them for your needs.

Read this article

Retrieving Properties From a Gitsigned Commit
In this post, we’ll continue the exploration of Gitsign by extracting some of the attestation data from a signed commit and using it to check how the code was built. This will help you understand how you can use the attestation data in your workflows.

Read this article

Using Gitsign for Keyless Git Commit Signing
Worried about securing your source code supply chain for GitOps and other processes? Learn how to implement automated signing in CI/CD pipelines, verify commit authenticity using transparency logs, and leverage GitHub OIDC tokens with Gitsign for keyless commit signing.

Read this article

The Secret Life of Git Large File Storage
For most people, Git Large File Storage (LFS) is a black box. You install it and somehow Git handles large files differently. But how does it manage the files? How does it know how and when to upload the files? And how was this implemented using only native Git extensibility points? This post will uncover its secrets and how it uses Git hooks and filters to manage large files.

Read this article

Migrating Git With An LFS Configuration File
Migrating repositories with LFS can be tricky. This is especially true when the repository is configured to use an LFS endpoint that is separate from the Git repository. Learn how to safely migrate repositories that are using .lfsconfig to manage the storage location.

Read this article

Exploring The Three Flavors of GitOps
Unlocking the power of GitOps means learning to use Git as the source of truth for deployments. Key to that is understanding the three models used for defining your GitOps practices.

Read this article

Migrating Submodules That Use Large File Storage (LFS)
Submodules can require some additional considerations during a migration. If the submodule repositories have large files that need to be migrated to LFS, the change to the commit IDs can break the submodules. This post explains why the problem happens, how to avoid issues during migration, and how to fix problems when they happen.

Read this article