Bootstrap

git 工具sourceTree远程拉取代码失败的解决

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中询问了.

;