Làm cách nào để tắt Trình quản lý thông tin Git cho Windows?


170

Tôi nhận thấy rằng trong phiên bản Git mới nhất, hiện tại mặc định là bật lên hộp thoại "Trình quản lý xác thực Git cho Windows" thay vì nhắc tôi nhập mật khẩu cho tôi tại dấu nhắc Bash mỗi lần.

Tôi thực sự ghét hành vi này. Làm thế nào tôi có thể vô hiệu hóa nó và quay lại nhập mật khẩu tại shell Bash mỗi lần?

Nhân tiện, tôi không muốn Git lưu trữ thông tin đăng nhập của mình theo bất kỳ cách nào , cho dù thông qua thông tin đăng nhập Windows hoặc một số trình nền nội bộ. Tôi muốn vô hiệu hóa tất cả các bộ nhớ đệm thông tin .

Câu trả lời:


211

OK, tôi phát hiện ra rằng bạn cần tránh kiểm tra hộp kiểm "Trình quản lý xác thực Git" trong trình cài đặt Git cho Windows hoặc (sau khi cài đặt) chạy shell Bash với tư cách Quản trị viên và sử dụng git config --edit --systemđể xóa helper = managerdòng để nó không còn được đăng ký như một người trợ giúp thông tin.

Đối với điểm thưởng, sử dụng git config --edit --globalvà chèn:

[core]
    askpass =

Để vô hiệu hóa cửa sổ bật lên thông tin đăng nhập OpenSSH.


19
Cảm ơn bạn đã trả lời. Đối với tôi, đây là lần đầu tiên sử dụng trình soạn thảo. Nếu bạn muốn lưu các thay đổi, nhấn phím thoát và gõ: wq và nhấn enter (ghi / lưu và thoát).
Ben Besuijen

1
Cảm ơn nhiều! Người quản lý thông tin xác thực đã nhầm lẫn với máy chủ proxy của công việc của tôi và nó khiến việc làm việc với Sourcetree trở thành một cơn ác mộng. Vô hiệu hóa nó đã khắc phục vấn đề ngay lập tức.
Johnny

1
và nếu: wq không hoạt động như trường hợp của tôi, hãy sử dụng ctrl + z để hủy bỏ và thoát nhưng chúng có thể sẽ tạo nhiều tệp sao lưu để hoạt động sau
Adeem

37
Hoặc hạ gục nó vớigit config --system --unset credential.helper
Ben Butzer

4
Đối với những người sử dụng SourceTree, đảm bảo rằng phiên bản "hệ thống" của GIT đang được sử dụng, chứ không phải phiên bản nhúng. Tools -> Options -> Git.
Stevanicus

30

Tôi đã có thể gỡ cài đặt Trình quản lý thông tin Git cho Windows bằng tùy chọn gỡ cài đặt:

git-credential-manager.exe uninstall

Chạy lệnh này trong C:\Program Files\Git\mingw64\libexec\git-core


1
Đây chỉ là quầy hàng và sau khi tôi nhấn ctrl-c, hãy sử dụng cách này:git credential [fill|approve|reject]
ScottN

2
@ScottN bạn đang chạy git-credential.exenhưng bạn cần chạy git-credential-manager.exe.
Aidan Ryan

13

Một tùy chọn khác tôi phải sử dụng với VSTS:

git config credential.modalprompt false --global


3
Cảm ơn! Tôi thấy nó rất hữu ích khi sử dụng ssh để kết nối từ xa với máy chủ sản xuất của mình: Tôi không thể làm điều đó git pullvì WCM bị loại bỏ. Với tùy chọn này, tôi tận hưởng cả hai thế giới: WCM khi được kết nối vật lý với máy chủ (hoặc với Remote Desktop) và có thể lấy từ máy khách ssh.
cbuchart

9

Nó không làm việc cho tôi:

C:\Program Files\Git\mingw64\libexec\git-core
git-credential-manager.exe uninstall

Looking for Git installation(s)...
  C:\Program Files\Git

Updated your /etc/gitconfig [git config --system]
Updated your ~/.gitconfig [git config --global]

Removing from 'C:\Program Files\Git'.
  removal failed. U_U

Press any key to continue...

Nhưng với --forcecờ nó hoạt động:

C:\Program Files\Git\mingw64\libexec\git-core
git credential-manager uninstall --force
08:21:42.537616 exec_cmd.c:236          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-core
e
08:21:42.538616 git.c:576               trace: exec: git-credential-manager uninstall --force
08:21:42.538616 run-command.c:640       trace: run_command: git-credential-manager uninstall --force

Looking for Git installation(s)...
  C:\Program Files\Git

Updated your /etc/gitconfig [git config --system]
Updated your ~/.gitconfig [git config --global]


Success! Git Credential Manager for Windows was removed! ^_^

Press any key to continue...

Tôi có thể thấy dấu vết đó sau khi tôi chạy:

set git_trace=1

Ngoài ra tôi đã thêm tên người dùng Git:

git config --global credential.username myGitUsername

Sau đó:

C:\Program Files\Git\mingw64\libexec\git-core
git config --global credential.helper manager

Cuối cùng, tôi đặt lệnh này:

git config --global credential.modalPrompt false

Tôi kiểm tra xem tác nhân SSH có đang chạy hay không - mở cửa sổ Bash để chạy lệnh này

eval "$(ssh-agent -s)"

Sau đó, trong thư mục người dùng máy tính / yourName có .ssh, hãy thêm một kết nối (vẫn trong Bash):

ssh-add .ssh/id_rsa

or

ssh-add ~/.ssh/id_rsa(if you are not in that folder)

Tôi đã kiểm tra tất cả các cài đặt mà tôi thêm ở trên:

C:\Program Files\Git\mingw64\libexec\git-core
git config --list
09:41:28.915183 exec_cmd.c:236          trace: resolved executable dir: C:/Program Files/Git/mingw64/libexec/git-cor
e
09:41:28.917182 git.c:344               trace: built-in: git config --list
09:41:28.918181 run-command.c:640       trace: run_command: unset GIT_PAGER_IN_USE; LESS=FRX LV=-c less
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
rebase.autosquash=true
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
http.sslbackend=openssl
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
credential.helper=manager
credential.modalprompt=false
credential.username=myGitUsername

Và khi tôi làm git pushlại, tôi phải thêm tên người dùng và mật khẩu lần đầu tiên.

git push
Please enter your GitHub credentials for https://myGithubUsername@github.com/
username: myGithubUsername
password: *************
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 316 bytes | 316.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.

Kể từ đó git push, tôi không còn tin nhắn để nhập thông tin đăng nhập Git nữa.

D:\projects\react-redux\myProject (master -> origin) (budget@1.0.0)
λ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 314 bytes | 314.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/myGitUsername/myProject.git
   8d38b18..f442d74  master -> master

Sau những cài đặt này, tôi cũng nhận được một email với thông báo:

 A personal access token (git: https://myGitHubUsername@github.com/
on LAP0110 at 25-Jun-2018 09:22) with gist and repo scopes was recently added
to your account. Visit https://github.com/settings/tokens for more information.

6

Tôi đã gặp vấn đề đó và tôi chỉ xóa tệp git-cert-manager.exe khỏi:

C:\Program Files\Git\mingw64\libexec\git-core

6

Tôi muốn sử dụng trình quản lý thông tin xác thực để sử dụng bình thường, nhưng tôi có các tập lệnh mà rõ ràng tôi không muốn bất kỳ lời nhắc nào git.exe. Đây là cách tôi gọi Git từ các tập lệnh của mình:

set GIT_TERMINAL_PROMPT=0
git -c core.askpass= -c credential.helper= <command> ...

Bằng cách này, tập lệnh luôn nhìn thấy cài đặt không có dấu nhắc "chính xác" mà không phải điều chỉnh bất kỳ cấu hình nào.

(Git cho Windows 2.13.3)


Một biến thể tôi thấy cũng có thể có ích là đặt:

set GCM_INTERACTIVE=never
# Or: git config --global credential.interactive never

set GIT_TERMINAL_PROMPT=0
git.exe -c core.askpass= -c credential.helper=manager <command> ...

Nhưng lưu ý rằng git.exe -c credential.interactive=never <command> ...không hoạt động (có vẻ như -cđiều đó không được chuyển đến Trình quản lý thông tin Git cho Windows hoặc bất cứ điều gì).

Bằng cách đó, bạn có thể sử dụng GCMfW, nhưng nó sẽ không bao giờ nhắc bạn; nó sẽ chỉ tra cứu thông tin đăng nhập, có thể rất hữu ích trong môi trường không tương tác.


5

Sử dụng:

C:\Program Files\Git\mingw64\libexec\git-core                                                                       
git credential-manager uninstall --force    

Điều này hoạt động trên các hệ thống Windows. Tôi đã thử nó, và nó làm việc cho tôi.


3

Có lẽ vấn đề là Sourcetree .

  1. Chuyển đến Công cụTùy chọn

  2. Bỏ chọn "Kiểm tra điều khiển từ xa mặc định để cập nhật cứ sau [10] phút"

  3. Khởi động lại Sourcetree!


1

và nếu: wq không hoạt động như trường hợp của tôi, hãy sử dụng ctrl + z để hủy bỏ và thoát nhưng chúng có thể sẽ tạo nhiều tệp sao lưu để hoạt động sau - Adeem 19 tháng 1 lúc 9:14

Cũng hãy chắc chắn để chạy Git với tư cách Quản trị viên! Nếu không, tập tin sẽ không được lưu (trong trường hợp của tôi).


1

Tôi gặp vấn đề tương tự trên Ubuntu 18.10 (Mực vũ trụ), không thể loại bỏ bằng bất kỳ phương tiện thông thường nào. Tôi đã sử dụng git config --global --unset credential.helper, và điều đó dường như để thực hiện các mẹo.


1

Trong thư mục "người dùng" c: // người dùng, hãy xem tệp ".gitconfig" sau đó xóa dòng http và proxy.


1

Để ngăn hộp thoại sử dụng git config --global credential.modalPrompt false, điều đó sẽ hướng các truy vấn đến bàn điều khiển.


0

bạn chỉ có thể xóa Trình quản lý thông tin xác thực.

C:\Users\<USER>\AppData\Local\Programs\Git\mingw64\libexec\git-core
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.