sourceTree远程拉取代码失败的解决
问题描述
最近在家远程办公,需要从git上拉取代码。于是:
git clone XXX.git
拉取代码
好了,首先拿命令行取一下远程的代码吧。
然后将仓库导入到SourceTree里面,然后问题出现了,无论是pull 还是push代码好像都无动于衷
错误提示:
Pushing to [email protected]:app/App.git
Access denied Access
Access denied Access
Access denied Access
问题解决
安装git的步骤省略,自行安装
配置本地的git 全局账户
git config --global user.name 你的目标用户名;
git config --global user.email 你的目标邮箱名;
查看是否修改成功
git config user.name
git config user.email
配置SSH KEY
重新配置git服务器的ssh key,如果之前ssh key已经配置过那么就不用配置了
git bash命令如下
ssh-keygen -t rsa -C "[email protected](替换成自己的)"
一路回车键之后,找到目录文件下的 (.pub)文件复制里面的全部内容:
在远程git服务端添加ssh key
打开git 远端服务添加复制的key内容:
配置SourceTree
在配置选项中,添加ssh密钥文件
好了这样就配置完成,完美解决问题
遇到https模式拉取提示输入密码
明明在钥匙串中是存在的.但是在使用sourceTree pull/push代码的时候还是需要再输入密码,很是繁琐.
在https模式下,Mac需要使用osxkeychain凭据助手,并在Git中设置使用. 并且如果已经安装了 brew 的应该会自带了 osxkeychain .但是奇怪的是,我安装了brew的,使用brew安装应用也没有问题.那就只能手动的再设置一次了.
方法
- 先使用命令下载 git-credential-osxkeychain
curl http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain -o git-credential-osxkeychain
- 把 git-credential-osxkeychain 放入 bin目录
mv git-credential-osxkeychain /usr/local/bin
- 给 git-credential-osxkeychain 赋权限
chmod u+x /usr/local/bin/git-credential-osxkeychain
- 在Git全局配置中进行设置(也可以在某一个项目里面设置):
git config --global credential.helper osxkeychain
经过上面的设置,下次访问https的项目时只需要输入一次密码,就会存储到osx的钥匙串中了,以后再也不会在Git中询问了.