Git:强制用户和密码提示

时间:2013-02-01 09:36:12

标签: git github

我最近从1.8.1将我的本地Git安装更新为1.8.0.1

我注意到,当我在GitHub上工作时,它不会在推送时提示我输入用户名和密码。

这让我很烦恼,因为我认为每次都要输入用户名和密码作为一个很好的安全措施。 (如果其他人使用我的电脑怎么办?)

我检查了以下内容:

    另一台计算机上的
  • 1.8.0.1仍然要求输入用户名和密码。
  • 我在github上的帐户仍然执行私人/安全控制。
  • 我使用的是https远程引用,而不是ssh。
  • 为了更好的衡量,我检查了~/.ssh fonder。没错。
  • 将登录详细信息存储在~/.gitconfig或单个<proj>/.git/config文件中。
  • 我还 ~/.netrc中存储与github相关的任何内容。
  • 我创建了一个新的虚拟存档:仍然没有提示我登录。

我无法在git release notes archive中找到任何内容。

有谁知道这是一个新的git行为吗?如何恢复提示?

6 个答案:

答案 0 :(得分:75)

使用git命令添加-v标志。例如 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.VIBRATE"/> <uses-permission android:name="it.bsdsoftware.cnabologna.permission.C2D_MESSAGE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <permission android:name="it.bsdsoftware.cnabologna.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> <application> ... <service android:name=".notifiche.RegistrationIntentService" android:exported="false" > </service> <service android:name=".notifiche.MyGcmListenerService" android:exported="false" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> </intent-filter> </service> <service android:name=".notifiche.MyInstanceIDListenerService" android:exported="false" > <intent-filter> <action android:name="com.google.android.gms.iid.InstanceID" /> </intent-filter> </service> <receiver android:name=".notifiche.GcmBroadcastReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <!-- Receives the actual messages. --> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <action android:name="com.google.android.c2dm.intent.GCM_RECEIVED_ACTION"/> <category android:name="it.bsdsoftware.cnabologna" /> <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> </intent-filter> </receiver> </application>

  

代表验证。

答案 1 :(得分:13)

  

使用git config -l,我现在看到我有一个credential.helper=osxkeychain选项

这意味着 credential helper (最初在1.7.10中引入)现已生效,并将自动缓存通过HTTP访问远程存储库的密码。
(如“GIT: Any way to set default login credentials?”)

您可以完全停用该选项,或only for a single repo

答案 2 :(得分:4)

由于问题标有Github,因此添加https_origin之类的其他遥控器并添加https连接会强制您始终输入密码:

git remote add https_origin https://github.com/.../...

答案 3 :(得分:3)

这些都不适合我。我正在尝试从私有git服务器克隆目录,并输入我的凭据为false,然后它不允许我在后续尝试中尝试不同的凭据,它只是立即因身份验证错误而出错。

这样做是在URL中指定用户名(mike-wise),如下所示:

   git clone https://mike-wise@collab.somewhere.net/someuser/somerepo.git

答案 4 :(得分:3)

这很可能是因为您有多个帐户,例如一个私人帐户,一个可以与GigHub一起使用。

解决方案 在Windows 上,转到“开始”>“凭据管理器”>“ Windows凭据”并删除github凭据,然后再次尝试拉动或推入,系统将提示您重新登录到Gighub

解决方案 在Mac 上,在终端上发出以下消息:

git remote set-url origin https://username@github.com/username/repo-name.git

在两个地方都用您的GigHub用户名替换“用户名”,并提供您的github存储库名称。

答案 5 :(得分:1)

第三个答案之外: 如果您使用的是非英语Windows,则可以通过“控制面板”>“用户帐户”>“凭据管理器”找到“凭据管理器” Icon of Credentials Manager