Github
如何停止 github 總是詢問使用者名/密碼?
我有我的鑰匙在
~/.ssh/
其他電腦上,我可以從有問題的回購中推拉。為什麼在一台電腦上我總是需要輸入我的 github 使用者名/密碼,而在其他電腦上卻不需要?
我可以改變什麼來避免這種情況並改用我的 ssh 密鑰?
這可以通過將身份驗證協議方法從 https 更改為 ssh 來更改
一種選擇是重命名或刪除現有儲存庫,然後使用不同的方法“重新複製”。因此,在
mv
ing 或rm -r
ing 目前 repo 之後,複製命令將類似於git clone git@github.com:user_name/repo_name.git
您可以使用以下
git config -l
命令查看兩種方法的區別:對於 https:
... remote.origin.url=https://github.com/user_name/repo_name.git ...
對於 ssh
... remote.origin.url=git@github.com:user_name/repo_name.git branch.master.rebase=true # This was also created in the ssh method ...
您可以看到
.git/config
每個 repo 的文件中的差異:請注意下面“url”的變化。加上
rebase = true
在 sshhttp
[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = https://github.com/user_name/repo_name.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master
SSH
[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = git@github.com:user_name/repo_name.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master rebase = true
因此,如果您只想更改身份驗證方法而不“重新複製”整個儲存庫,您只需編輯項目
.git/config
並更改url = git@github.user_name/repo_name.git
到
url = https://github.com/user_name/repo_name.git
加加
rebase = true
在底部,在“
[branch "master"]
”部分
最簡單的方法是創建一個
~/.netrc
包含以下內容的文件:machine github.com login YOUR_GITHUB_USERNAME password YOUR_GITHUB_PASSWORD
(如圖所示: https ://gist.github.com/ahoward/2885020 )
您甚至可以關閉此文件的權限,這樣任何人都無法通過鍵入以下內容讀取您的密碼:
chmod 600 ~/.netrc