我通常在两个地方工作,新来的是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。并且在文本文件中立即存储用户名和密码也不是一个好习惯。
答案 0 :(得分:2)
是的,您可以将凭据存储在$HOME/.netrc
file。
machine github.com
login <login1>
password <password1>
或者您可以使用credential helper以便:
答案 1 :(得分:1)
通常,您应该使用带密钥的SSH,如果只是为了在纯文本文件中没有密码的特定优势。使用SSH密钥,您可以在每台设备上拥有一个区分(本地加密)密钥,而且永远不必复制它们。
至于https,如果您使用最新的git,它应该询问您的用户名和密码。你甚至可以在git URL中添加你的用户名,这样git只会要求输入密码。
但是如果你能够使用SSH,你应该使用它,因为它更安全,一旦你处理好你的按键,就会更方便。