You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Git Credential Manager Core](https://github.com/Microsoft/Git-Credential-Manager-Core) (GCM Core) is a secure Git credential helper built on [.NET Core](https://microsoft.com/dotnet) that runs on Windows and macOS. Linux support is planned, but not yet scheduled.
10
10
11
-
Compared to Git's [built-in credential helpers]((https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage)) (Windows: wincred, macOS: osxkeychain, Linux: gnome-keyring) which provides single-factor authentication support working on any HTTP-enabled Git repository, GCM Core provides multi-factor authentication support for [Azure DevOps](https://dev.azure.com/), Azure DevOps Server (formerly Team Foundation Server), and GitHub.
11
+
Compared to Git's [built-in credential helpers]((https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage)) (Windows: wincred, macOS: osxkeychain, Linux: gnome-keyring) which provides single-factor authentication support working on any HTTP-enabled Git repository, GCM Core provides multi-factor authentication support for [Azure DevOps](https://dev.azure.com/), Azure DevOps Server (formerly Team Foundation Server), GitHub, and Bitbucket.
12
12
13
-
## Public preview for macOS
13
+
## Public preview
14
14
15
-
The long-term goal of GCM Core is to converge the .NET Framework-based [Git Credential Manager for Windows](https://github.com/Microsoft/Git-Credential-Manager-for-Windows) (GCM Windows), and the Java-based [Git Credential Manager for Mac and Linux](https://github.com/Microsoft/Git-Credential-Manager-for-Mac-and-Linux) (Java GCM), providing a consistent authentication experience across all platforms.
15
+
The long-term goal of Git Credential Manager Core (GCM Core) is to converge the .NET Framework-based [Git Credential Manager for Windows](https://github.com/Microsoft/Git-Credential-Manager-for-Windows) (GCM), and the Java-based [Git Credential Manager for Mac and Linux](https://github.com/Microsoft/Git-Credential-Manager-for-Mac-and-Linux) (Java GCM), providing a consistent authentication experience across all platforms.
16
16
17
17
### Current status
18
18
19
-
GCM Core is currently in preview only for macOS, with a Windows preview following soon. Until that time we recommend Windows users to continue to use GCM Windows. Linux support is planned, but not yet scheduled. For now, we recommend [SSH for authentication to Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to-authenticate?view=azure-devops).
19
+
Git Credential Manager Core is currently in preview for macOS and Windows. Linux support is planned, but not yet scheduled. For now, we recommend [SSH for authentication to Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to-authenticate?view=azure-devops) for Linux users.
(\*) Currently only supported when using Git from the terminal or command line. A platform-native UI experience for GitHub is not yet available on macOS, but planned.
34
+
(\*) Currently only supported when using Git from the terminal or command line. A platform-native UI experience is not yet available on macOS, but planned.
34
35
35
36
### Planned features
36
37
37
-
-[ ] Proxy support
38
-
-[ ] Windows installer
39
-
-[ ] Improved GitHub support (platform-native UI)
40
-
-[ ] BitBucket
41
-
-[ ] Linux installer
38
+
-[ ] 32-bit Windows support (only 64-bit Windows is supported currently)
39
+
-[ ] Linux support
40
+
-[ ] macOS/Linux native UI
42
41
43
42
## Download and Install
44
43
45
-
To use GCM Core, you can download the [latest installer](https://github.com/Microsoft/Git-Credential-Manager-Core/releases/latest) for your platform. To install, double-click installation package and follow the instructions presented.
44
+
### macOS Homebrew
46
45
47
-
### Git Credential Manager for Mac and Linux (Java-based GCM)
46
+
The preferred installation mechanism is using Homebrew; we offer a Cask in our custom Tap.
47
+
48
+
To install, run the following:
49
+
50
+
```shell
51
+
brew tap microsoft/git
52
+
brew cask install git-credential-manager-core
53
+
```
54
+
55
+
#### Git Credential Manager for Mac and Linux (Java-based GCM)
48
56
49
57
If you have an existing installation of the 'Java GCM' on macOS and you have installed this using Homebrew, this installation will be unlinked (`brew unlink git-credential-manager`) when GCM Core is installed.
50
58
59
+
#### Uninstall
60
+
61
+
To uninstall, run the following:
62
+
63
+
```shell
64
+
brew cask uninstall git-credential-manager-core
65
+
```
66
+
67
+
---
68
+
69
+
### macOS Package
70
+
71
+
We also provide a [.pkg installer](https://github.com/Microsoft/Git-Credential-Manager-Core/releases/latest) with each release. To install, double-click the installation package and follow the instructions presented.
72
+
73
+
#### Uninstall
74
+
75
+
To uninstall, run the following:
76
+
77
+
```shell
78
+
sudo /usr/local/share/gcm-core/uninstall.sh
79
+
```
80
+
81
+
---
82
+
83
+
### Windows
84
+
85
+
You can download the [latest installer](https://github.com/Microsoft/Git-Credential-Manager-Core/releases/latest) for Windows. To install, double-click the installation package and follow the instructions presented.
86
+
87
+
#### Git Credential Manager for Windows
88
+
89
+
GCM Core installs side-by-side any existing Git Credential Manager for Windows installation and will take precedence over it and use any existing credentials so you shouldn't need to re-authenticate.
90
+
91
+
#### Uninstall (Windows 10)
92
+
93
+
To uninstall, open the Settings app and navigate to the Apps section. Select "Git Credential Manager Core" and click "Uninstall".
94
+
95
+
#### Uninstall (Windows 7-8.1)
96
+
97
+
To uninstall, open Control Panel and navigate to the Programs and Features screen. Select "Git Credential Manager Core" and click "Remove".
98
+
51
99
## How to use
52
100
53
-
You don't! GCM gets called when Git needs credentials for an operation. For example, when pushing (`git push`) to [Azure DevOps](https://dev.azure.com), it automatically opens a window and initializes an OAuth2 flow to get your personal access token.
101
+
Git Credential Manager Core is called implicitly by Git, when so configured. It is not intended to be called directly by the user.
102
+
For example, when pushing (`git push`) to [Azure DevOps](https://dev.azure.com), a window is automatically opened and an OAuth2 flow is started to get your personal access token.
103
+
104
+
### Configuring a proxy
105
+
106
+
See detailed information [here](https://aka.ms/gcmcore-httpproxy).
54
107
55
108
## Additional Resources
56
109
@@ -59,6 +112,7 @@ You don't! GCM gets called when Git needs credentials for an operation. For exam
59
112
-[Command-line usage](docs/usage.md)
60
113
-[Configuration options](docs/configuration.md)
61
114
-[Environment variables](docs/environment.md)
115
+
-[Network and HTTP configuration](docs/netconfig.md)
The `Git-Credential-Manager.sln` solution can be opened and built in Visual Studio, Visual Studio for Mac, Visual Studio Code, or JetBrains Rider.
12
+
13
+
### macOS
14
+
15
+
To build from inside an IDE, make sure to select the `MacDebug` or `MacRelease` solution configurations.
16
+
17
+
To build from the command line, run:
18
+
19
+
```shell
20
+
dotnet build -c MacDebug
21
+
```
22
+
23
+
You can find a copy of the installer .pkg file in `out/osx/Installer.Mac/pkg/Debug`.
24
+
25
+
The flat binaries can also be found in `out/osx/Installer.Mac/pkg/Debug/payload`.
26
+
27
+
### Windows
28
+
29
+
To build from inside an IDE, make sure to select the `WindowsDebug` or `WindowsRelease` solution configurations.
30
+
31
+
To build from the command line, run:
32
+
33
+
```powershell
34
+
msbuild /t:restore /p:Configuration=WindowsDebug
35
+
msbuild /p:Configuration=WindowsDebug
36
+
```
37
+
38
+
You can find a copy of the installer .exe file in `out\windows\Installer.Windows\bin\Debug\net461`.
39
+
40
+
The flat binaries can also be found in `out\windows\Payload.Windows\bin\Debug\net461\win-x64`.
41
+
42
+
### Linux
43
+
44
+
_No information yet._
45
+
46
+
## Debugging
47
+
48
+
To debug from inside an IDE you'll want to set `Git-Credential-Manager` as the startup project, and specify one of `get`, `store`, or `erase` as a program argument.
49
+
50
+
To simulate Git interacting with GCM Core, when you start from your IDE of choice, you'll need to enter the following [information over standard input](https://git-scm.com/docs/git-credential#IOFMT):
51
+
52
+
```text
53
+
protocol=http<LF>
54
+
host=<HOSTNAME><LF>
55
+
<LF>
56
+
<LF>
57
+
```
58
+
59
+
..where `<HOSTNAME>` is a supported hostname such as `github.com`, and `<LF>` is a line feed (or CRLF, we support both!).
60
+
61
+
You may also include the following optional fields, depending on your scenario:
62
+
63
+
```text
64
+
username=<USERNAME><LF>
65
+
password=<PASSWORD><LF>
66
+
```
67
+
68
+
For more information about how Git interacts with credential helpers, please read Git's [documentation](https://git-scm.com/docs/gitcredentials#_custom_helpers).
69
+
70
+
### Attaching to a running process
71
+
72
+
If you want to debug an already running GCM Core process, set the `GCM_DEBUG` environment variable to `1` or `true`. The process will wait on launch for a debugger to attach before continuing.
73
+
74
+
This is useful when debugging interactions between GCM Core and Git, and you want Git to be the one launching us.
75
+
76
+
### Collect trace output
77
+
78
+
If you want to debug a release build or installation of GCM Core, you can set the `GCM_TRACE` environment variable to `1` to print trace information to standard error, or to an absolute file path to write trace information to a file.
0 commit comments