1

我通常在两个地方工作,并且是 git 新手。我第一次在线创建了一个存储库并将其添加到我的系统中,就像 github 网站告诉的步骤一样。然后我想从另一个地方在同一个存储库上工作,所以我也在我的另一个系统中安装了 git 并执行了以下操作:

创建了一个目录:

然后在那个目录中我做了git init

之后我做了git config --global user.name "Name"git config --global user.email "email"

然后,我通过从github 网站中的HTTPS CLONE URL 选项获取存储库的地址,添加了之前从其他系统创建的相同存储库,如下所示:

git 添加来源https://github.com/myUserName/repoName.git

然后获取我所做的所有存储库数据:

git pull 起源大师

直到这一切正常,我将所有数据都放到了我的系统上,但是当我对文件进行一些更改并提交更改时,我开始使用以下命令推回更改:

git push 起源大师

但我无法推送更改,因为它说错误:403 Forbidden

据我说,它给了我这样一条消息,因为它没有要求我输入任何用户名和密码组合,但是当我在我的第一个系统中配置存储库时,它在推送时要求我输入用户名和密码。

在做了一些谷歌之后,我发现我们可以将用户名和密码插入到.git/config中的文件中

所以我编辑了该文件如下:

早些时候我的配置文件看起来像:

[core]

        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "recupero"]

        url = https://github.com/satyam1990/recupero.git
        fetch = +refs/heads/*:refs/remotes/recupero/*

编辑我的配置文件后看起来像:

[core]

        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "recupero"]

        url = https://Username:myPasswordHere@github.com/satyam1990/recupero.git
        fetch = +refs/heads/*:refs/remotes/recupero/*

如上所述编辑我的配置文件后,我可以推送,但是当我推送更改时,它会立即在我的屏幕上显示我的用户名和密码,我不希望这样。有没有一种方法可以让 git 在每次git push时都向我询问用户名和密码,就像在我之前第一次配置 git 的系统上一样。并且立即将用户名和密码存储在文本文件中也不是一个好习惯。

4

2 回答 2

2

是的,您可以将凭据存储在$HOME/.netrc文件中。

machine github.com
login <login1>
password <password1>

或者,您可以使用凭证助手来:

于 2013-07-01T11:38:42.207 回答
1

通常,您应该使用带有密钥的 SSH,如果只是为了不将密码放在纯文本文件中的特定优势。使用 SSH 密钥,您可以在每台设备上拥有一个可区分的(本地加密的)密钥,并且永远不必复制它们。

至于 https,如果您使用最新的 git,它应该会询问您的用户名和密码。你甚至可以在 git URL 中添加你的用户名,这样 git 只会询问密码。

但是,如果您能够使用 SSH,则应该使用它,因为它更安全,并且一旦您掌握了处理密钥的窍门,就会更加方便。

于 2013-07-01T11:48:37.060 回答