
To install GCM Core, follow these instructions for each platform: Windows However, once GCM Core has had some time in the wild, we will move to deprecate and retire both GCM for Windows and GCM for Mac & Linux. Also without Linux support we won’t be retiring GCM for Mac & Linux, just yet. GCM Core is in beta today, which means that we won’t be retiring GCM for Windows. We plan to extend this tool to include support for Linux platforms and authentication with additional hosting services.īut wait? Doesn’t this just mean we’ve made yet another credential helper? We built this tool from the ground up with cross-platform and cross-host support in mind. I’m pleased to announce a new credential manager is available for Windows and macOS: Git Credential Manager (GCM) Core! GCM Core is a free, open-source, cross-platform credential manager for Git, and currently supports authentication to GitHub, Bitbucket, and Azure Repos. We’ve been hard at work laying the foundation for a single tool to unify the Git authentication experience across platforms and hosting services. Even better, it is helpful to do it once. If you’re going to do something, then it is best to do it right. Hard to debug, hard to test, hard to get right.

This complicates the authentication story significantly since new and existing tools are required to meet the demands of these stricter authentication models.Įven though authentication is so critical, building a new authentication feature is hard.

These days, two-factor authentication (2FA) is commonly required to keep your data secure. When first designed, these tools simply stored usernames and passwords in a secure location for later retrieval (e.g., your keychain, in an encrypted file, etc). To manage all of this, Git relies on tools called credential managers which handle authentication to different hosting services. On the other hand, PATs are often much easier to set up, but also far less secure. Though SSH-based authentication is considered most secure, setting it up correctly can often be a challenge.


When using SSH, Git relies on the server knowing your machine’s public SSH key. When using HTTP(S), Git sends a username and password, or a personal access token (PAT) via HTTP headers. Git currently supports two authentication mechanisms for accessing remotes. Additionally when working on proprietary software, you need a way to prove that you even have read permission to access your code during git fetch or git pull. When working in open source, you need to prove that you have rights to update a branch with git push. Authentication is a critical component to your daily development.
