簡體   English   中英

如果其他所有操作失敗,則Windows的Git似乎會自動退回到憑證助手“ manager”。 我該如何預防?

[英]Git for windows seems to automatically fall back to credential helper “manager” if everything else fails. How do I prevent this?

我正在嘗試將自定義網頁與git集成。 在我的PHP腳本中,我使用了選項“ -c credential.helper =” store --file = ...“,這樣網頁就不會停止並等待輸入密碼。作為Web界面的一部分,我有一些代碼可以在密碼過期時更新憑據文件。

在開發過程中,當我在Windows命令提示符下(為您的* NIX閱讀器:“終端”)發出git命令時,它們都可以正常工作。 但是,當我將命令放在PHP腳本中並通過Web服務器運行時,它們將失敗。 我設法捕獲了git任務的輸出,它正在等待某人鍵入用戶ID。

如果所有其他機制失敗,則Windows上的git似乎會自動回退到“ manager”幫助器。 以下命令序列對此進行了說明:

C:\TFS\Train>git config --get --show-origin credential.helper

C:\TFS\Train>type .git\.git_web_credentials
http://Promote5:[.....]@tocgnxt1pv%3a8080

C:\TFS\Train>git -c credential.helper="store --file=C:\TFS\Train\.git\.git_credentials" tag -a -m "Testing tags from the command line" Who_created_this_tag2

C:\TFS\Train>git show Who_created_this_tag2
tag Who_created_this_tag2
Tagger: JimHyslop <jim.hyslop@xxx.xxx>
Date:   Wed Dec 6 18:13:27 2017 -0500

[... remainder of output elided ...]

C:\TFS\Train>git --version
git version 2.13.0.windows.1

如您所見,“ tagger”行表示我是應用該標簽的人。

我什至嘗試過完全刪除憑據文件,但是仍然無法使用我的身份。

有什么方法可以抑制這種自動回退到使用Windows憑據的情況? 這使調試我的PHP腳本非常困難:我從命令提示符中不知道命令是否成功,是因為它能夠使用憑據文件,還是因為它退回到了使用我自己的ID(Web服務無法做到) 。

編輯添加:密碼實際上在憑據文件中,我屏蔽了它。 該文件最初是通過Cygwin Shell輸入ID和密碼創建的,該Cygwin Shell運行的是git:2.15.0的較新版本。 我正在為我的Web服務運行WAMP堆棧。

經過更多調查后,我意識到'tagger'行是從[user]部分下的配置信息中提取的。 日志中顯示的用戶信息與授權/憑證方法無關。

真正的問題是:為什么git忽略命令行選項“ -c credential.helper =”? 或者,如果不忽略該選項,我該如何確切地找出憑證幫助程序失敗的原因?

作為記錄,我想到的解決方案是編寫一個自定義憑據管理器,如git-scm.com所述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM