赞
踩
可能对于用SVN习惯的同学,简单的办法是用图形界面的方法,可以直接跳到对应的小节查看
点击跳转
说明:命令Terminal用的是Git Bash,否则可能会有权限的问题。
命令进入 SSH根目录(根据自己的实际情况来)
cd ~/.ssh/
直接使用以下命令创建新密钥,然后两次回车即可(建议用下面的命令可以直接在指定目录生成指定密钥):
ssh-keygen -t rsa -f ~/.ssh/这里是新密钥名称 -C "这里是你的邮箱"
比如我的两个密钥
rsa_home
rsa_work
注意区别新密钥名称和旧密钥名称,不要相同!!!
查看你的 .ssh/根路径下, 有没有config文件,( 比如我的路径为C:\Users\lee.ssh)要注意一定是这个路径下的config,这关系到里面的具体路径配置
没有则使用以下命令创建一个config文件:
touch config
用记事本或者其他工具打开config文件(注意config文件是没有任何后缀名的),写入以下配置:
# home
Host home # 前缀名可以任意设置
HostName ssh.github.com
User git
IdentityFile ~/.ssh/rsa_home # 自己对应的密钥路径
# work
Host work # 前缀名可以任意设置
HostName ssh.github.com
User git
IdentityFile ~/.ssh/rsa_work # 自己对应的密钥路径
ssh-add rsa_home # 第一个密钥名称
ssh-add rsa_work # 第二个密钥名称
如果执行以上命令出现错误:Could not open a connection to your authentication agent.
,那么就需要先执行ssh-agent bash
,再执行以上命令。
验证时注意与config的Host名字对应
使用命令cd ~/.ssh,cd到.ssh根目录下,依次执行以下命令:
ssh -T git@home // 与上面配置的Host 名字对应
ssh -T git@work // 与上面配置的Host 名字对应
如果出现下面结果,说明已经正常工作:
Hi xxxx! You've successfully authenticated, but GitHub does not provide shell access.
首先需要删除git配置的全局用户名和邮箱.接着在自己每个项目的仓库中按照需要设置不同的user.name和user.email。
git config --global --unset 'user.name'
git config --global --unset 'user.email'
在自己的每个文件夹(repo仓库)下,打开Git Bash,然后进行设置。
git config user.name `xxx`
git config user.email `xxx@xxx.com`
注意,在设置结束之后,创建git repo(git init)的时候,一定要再次检查一下用户名和用户邮箱,如果不对, 需要再次设置.
执行以下命令可以查看设置是否成功
git config --list
之后再添加远程仓库的时候,就不能直接使用https的方式了,只能使用ssh方式.
git remote add origin git@home: home/example.git # home account
git remote add origin git@work: work/example.git # work account
其中 home 或者 work 就是在配置文件中设置的 Host.
然后使用git remote -v
确认是否连接上。
最后进行推送.
git push origin master
其实,上面的配置文件的意思就是,按照你设置远程仓库时使用不同的Host名称,查找~/.ssh/config文件使用不同的SSH 文件连接到GitHub。这样你就将是以不同的身份访问GitHub仓库。
假设存在home和work两个不同的hexo博客,打开博客Hexo目录下的_config.yml文件,找到deploy关键字,写入以下配置并保存。
deploy:
type: git
repository: git@home:firstblog/firstblog.github.io.git # firstblog为对应的博客地址名称
branch: master
deploy:
type: git
repository: git@home: secondblog/secondblog.github.io.git # secondblog为对应的博客地址名称
branch: master
再次执行hexo g -d
就能成功将新的博客部署到 Github
(之前遇到问题就在这里)
比如在config中配置了home
那么对应的验证命令为:
ssh -vT git@home
在push的时候也要做相应的修改
git remote add origin git@home: home/example.git # home account
而不是
git remote add origin git@github.com: home/example.git # home account
参考网址
github push failed (remote: Permission to userA/repo.git denied to userB.)
原因:该电脑使用git bash配过SSH,系统已经将指向github.com的用户设置为了userB,每次push操作的时候,都将读取到userB的用户信息,类似于记住密码。
- 打开 控制面板–>用户–>证书管理–>系统证书
- 展开 git:https://github.com 并删除之。
参考网址 一台电脑如何同时使用两个github账号
项目的url应该配置成:
https://YourGithubName:YourGithubPassword@github.com/YourGithubName/YourProjectName.git
不想把你的github密码暴露出来的话把上面的:YourGithubPassword去掉就可以了,这个时候每次提交需要你手动输入密码。
如何你采用了上面的建议的话,记得不要执行下面的git命令:
git config --global user.name "John Doe"
git config --global user.email "johndoe@example.com"
如果你已经执行过了,那可以执行:
git config --global --unset user.name "John Doe"
git config --global --unset user.email "johndoe@example.com"
TortoiseGIT,使用教材讲的很细。
下载地址
使用教材一
使用教材二
注意2个地方
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。