git push说是禁止的

时间:2013-07-01 10:42:23

标签: git github

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

创建了一个目录:

然后在该目录中我做了 git init

之后我做了 git config --global user.name“Name”和                   git config --global user.email“email”

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

git add origin https://github.com/myUserName/repoName.git

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

git pull origin master

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

git push origin master

但我无法推动更改,因为它说错误:403禁止

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

经过一些谷歌我发现我们可以将用户名和密码插入 .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。并且在文本文件中立即存储用户名和密码也不是一个好习惯。

2 个答案:

答案 0 :(得分:2)

是的,您可以将凭据存储在$HOME/.netrc file

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

或者您可以使用credential helper以便:

答案 1 :(得分:1)

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

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

但是如果你能够使用SSH,你应该使用它,因为它更安全,一旦你处理好你的按键,就会更方便。