मैं Windows के लिए Git क्रेडेंशियल प्रबंधक को कैसे अक्षम करूं?


170

मैं ध्यान देता हूं कि Git के नवीनतम संस्करण में, डिफ़ॉल्ट अब हर बार बैश प्रॉम्प्ट पर मुझे पासवर्ड देने के बजाय "Git क्रेडेंशियल मैनेजर फॉर विंडोज" संवाद पॉपअप करने के लिए है।

मैं वास्तव में इस व्यवहार से नफरत करता हूं। मैं इसे कैसे अक्षम कर सकता हूं और हर बार बैश शेल में पासवर्ड दर्ज करने के लिए वापस जा सकता हूं?

वैसे, मैं नहीं चाहता कि Git मेरे क्रेडेंशियल्स को किसी भी तरह से कैशिंग करे , चाहे विंडोज क्रेडेंशियल्स या कुछ आंतरिक डेमॉन के माध्यम से। मैं सभी क्रेडेंशियल कैशिंग अक्षम करना चाहता हूं ।

जवाबों:


211

ठीक है, मुझे पता चला कि आपको Windows इंस्टॉलर के लिए Git के दौरान "Git क्रेडेंशियल मैनेजर" चेकबॉक्स को चेक करने से बचने की आवश्यकता है , या (इंस्टॉलेशन के बाद) बैश शेल को प्रशासक के रूप में चलाएं और लाइन git config --edit --systemको हटाने के लिए उपयोग करें helper = managerताकि यह अब पंजीकृत न हो। एक विश्वसनीय सहायक।

बोनस अंक के लिए, उपयोग करें git config --edit --globalऔर डालें:

[core]
    askpass =

OpenSSH क्रेडेंशियल्स पॉपअप को भी अक्षम करने के लिए।


19
आपको जवाब के लिए धन्यवाद। मेरे लिए, संपादक का उपयोग करने का यह पहला मौका था। यदि आप परिवर्तनों को सहेजना चाहते हैं, तो एस्केप कुंजी को हिट करें और टाइप करें: wq और हिट एंटर (राइट / सेव एंड लीव) दर्ज करें।
बेन बेसुइजेन

1
बहुत धन्यवाद! क्रेडेंशियल मैनेजर मेरे काम के प्रॉक्सी सर्वर के साथ भ्रमित हो गया और इसने सोर्सेट्री को एक बुरे सपने के साथ काम करना शुरू कर दिया। इसे अक्षम करने से समस्या तुरंत ठीक हो गई।
जॉनी

1
और अगर: wq मेरे केस की तरह काम नहीं करता है, तो गर्भपात और छोड़ने के लिए ctrl + z का उपयोग करें, लेकिन ये बाद में काम करने के लिए कई बैकअप फ़ाइल बनाएंगे
Ad

37
या इसे बाहर git config --system --unset credential.helper
खटखटाओ

4
सोर्सट्री का उपयोग करने वालों के लिए सुनिश्चित करें कि जीआईटी के "सिस्टम" संस्करण का उपयोग किया जा रहा है, न कि एम्बेडेड। Tools -> Options -> Git
स्टीवनिकस

30

मैं अनइंस्टॉल विकल्प का उपयोग करके विंडोज के लिए गिट क्रेडेंशियल प्रबंधक की स्थापना रद्द करने में सक्षम था:

git-credential-manager.exe uninstall

इस कमांड को में रन करें C:\Program Files\Git\mingw64\libexec\git-core


1
यह सिर्फ स्टॉल और मेरे द्वारा ctrl-c दबाने के बाद, इस प्रयोग से बाहर git credential [fill|approve|reject]
निकलता है

2
@ScottN आप चला रहे हैं git-credential.exeलेकिन आपको चलाने की आवश्यकता है git-credential-manager.exe
ऐदन रयान

13

एक और विकल्प जो मुझे वीएसटीएस के साथ उपयोग करना था:

git config credential.modalprompt false --global


3
धन्यवाद! अपने उत्पादन सर्वर से दूरस्थ रूप से कनेक्ट करने के लिए ssh का उपयोग करते समय मुझे यह बहुत उपयोगी लगा: मैं git pullWCM की गोलाबारी के कारण ऐसा नहीं कर सका । इस विकल्प के साथ मैं दोनों दुनिया का आनंद लेता हूं: सर्वर (या रिमोट डेस्कटॉप) के साथ शारीरिक रूप से जुड़ा होने पर डब्ल्यूसीएम, और एक एसएएस क्लाइंट से खींचने में सक्षम।
cbuchart

9

यह मेरे लिए काम नहीं किया:

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...

लेकिन --forceध्वज के साथ यह काम किया:

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...

मेरे द्वारा चलाए जाने के बाद मैं वह ट्रेस देख सकता था:

set git_trace=1

इसके अलावा मैंने Git यूजरनेम जोड़ा:

git config --global credential.username myGitUsername

फिर:

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

अंत में मैं इस आदेश में डाल दिया:

git config --global credential.modalPrompt false

मैं जांचता हूं कि क्या एसएसएच एजेंट चल रहा है - इस कमांड को चलाने के लिए एक बैश विंडो खोलें

eval "$(ssh-agent -s)"

फिर कंप्यूटर उपयोगकर्ताओं / अपने नाम फ़ोल्डर में जहां .sh है, एक कनेक्शन जोड़ें (अभी भी बाश में):

ssh-add .ssh/id_rsa

or

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

मैंने उन सभी सेटिंग्स को जांचा जो मैं ऊपर जोड़ता हूं:

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

और जब मैंने git pushफिर से किया तो मुझे पहली बार केवल उपयोगकर्ता नाम और पासवर्ड जोड़ना पड़ा।

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.

तब से उपयोग करते हुए git push, मेरे पास अपने Git क्रेडेंशियल्स में प्रवेश करने के लिए संदेश नहीं है।

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

इन सेटिंग्स के बाद मुझे संदेश के साथ एक ईमेल भी मिला:

 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

मैं सामान्य उपयोग के लिए क्रेडेंशियल प्रबंधक का उपयोग करना चाहता था, लेकिन मेरे पास स्क्रिप्ट हैं जहां मैं स्पष्ट रूप से कोई संकेत नहीं देना चाहता git.exe। इस तरह से मैं अपनी स्क्रिप्ट से Git को आमंत्रित करता हूं:

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

इस तरह, स्क्रिप्ट हमेशा "सही" नो-प्रॉम्प्ट सेटिंग को बिना किसी कॉन्फ़िगरेशन के अनुकूल होने के लिए देखती है।

(विंडोज 2.13.3 के लिए पकड़ें)


एक बदलाव जो मुझे लगा कि वह भी काम आ सकता है:

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> ...

लेकिन ध्यान दें कि git.exe -c credential.interactive=never <command> ... यह काम नहीं करता है (ऐसा लगता है कि यह -cचीज विंडोज या जो भी है उसके लिए Git क्रेडेंशियल मैनेजर के माध्यम से रूट नहीं की गई है)।

इस तरह, आप GCMfW का उपयोग सकते हैं, लेकिन यह आपको कभी संकेत नहीं देगा; यह केवल क्रेडेंशियल्स की खोज करेगा, जो गैर-संवादात्मक वातावरण में बहुत सहायक हो सकता है।


5

उपयोग:

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

यह विंडोज सिस्टम पर काम करता है। मैंने इसका परीक्षण किया, और इसने मेरे लिए काम किया।


3

शायद समस्या Sourcetree है

  1. टूल्सविकल्प पर जाएं

  2. अनचेक करें "हर [10] मिनट के अपडेट के लिए डिफ़ॉल्ट रीमेक जांचें"

  3. सरसीट्री को फिर से शुरू करें!


1

और अगर: wq मेरे केस की तरह काम नहीं करता है, तो गर्भपात और छोड़ने के लिए ctrl + z का उपयोग करें, लेकिन ये बाद में काम करने के लिए कई बैकअप फ़ाइल बनाएंगे - Ad 19 जनवरी को 9:14 पर

Git को व्यवस्थापक के रूप में चलाना सुनिश्चित करें! अन्यथा फ़ाइल (मेरे मामले में) सहेजी नहीं जाएगी।


1

मैंने उबंटू 18.10 (कॉस्मिक कटलफ़िश) पर एक ही मुद्दा मारा , किसी भी सामान्य साधन का उपयोग करने में असमर्थ। मैंने इस्तेमाल किया git config --global --unset credential.helper, और वह चाल करने के लिए लग रहा था।


1

"उपयोगकर्ता" फ़ोल्डर c: // उपयोगकर्ता के तहत, ".gitconfig" फ़ाइल देखें और फिर http और प्रॉक्सी लाइन हटा दें।


1

संवाद के उपयोग को रोकने के लिए git config --global credential.modalPrompt false, यह प्रश्नों को कंसोल पर ले जाएगा।


0

आप सिर्फ क्रेडेंशियल मैनेजर को हटा सकते हैं।

C:\Users\<USER>\AppData\Local\Programs\Git\mingw64\libexec\git-core
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.